在 android 中动态更改上下文菜单项
changing context menu items dynamically in android
我正在尝试实现联系人应用程序。这是来源:
call = (Button) findViewById(R.id.button3);
message = (Button) findViewById(R.id.button4);
call.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerForContextMenu(call);
openContextMenu(call);
}
});
message.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerForContextMenu(message);
openContextMenu(message);
}
});
现在,这是上下文菜单部分:
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu,v,menuInfo);
String num1 = ((TextView)findViewById(R.id.num1)).getText().toString();
String num2 = ((TextView)findViewById(R.id.num2)).getText().toString();
if(v == call)
{
menu.setHeaderTitle("Call");
menu.add(0,v.getId(),0,num1);
if(num2 != "")
{
menu.add(0,v.getId(),0,num2);
}
}
else if(v == message)
{
menu.setHeaderTitle("Message");
menu.add(0,v.getId(),0,num1);
if(num2 != "")
{
menu.add(0,v.getId(),0,num2);
}
}
}
主要功能是,如果用户只有一个联系人号码,那么上下文菜单中应该只显示一个号码。但是,这就是问题所在:
如果没有第二个联系电话,则显示空白space。而且,它是可点击的!
我的逻辑:我正在使用 TextView 来显示存储在数据库中的数字。我正在使用 String 来存储 TextView 的数据。如果第二个数字的字符串不为空,则将该项目添加到上下文菜单。
请帮我解决这个问题!
提前致谢。
在 java 中你应该使用
!num2.isEmpty()
而不是
num2 != ""
字符串比较就像
string1.equals(string2) ; //to match 2 strings
string.isEmpty() //to check if string is empty
在 java.
阅读 this 了解更多详情。
最好的是..
if(num2.trim().lenght()>0)
{
menu.add(0,v.getId(),0,num2);
}
我正在尝试实现联系人应用程序。这是来源:
call = (Button) findViewById(R.id.button3);
message = (Button) findViewById(R.id.button4);
call.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerForContextMenu(call);
openContextMenu(call);
}
});
message.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerForContextMenu(message);
openContextMenu(message);
}
});
现在,这是上下文菜单部分:
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu,v,menuInfo);
String num1 = ((TextView)findViewById(R.id.num1)).getText().toString();
String num2 = ((TextView)findViewById(R.id.num2)).getText().toString();
if(v == call)
{
menu.setHeaderTitle("Call");
menu.add(0,v.getId(),0,num1);
if(num2 != "")
{
menu.add(0,v.getId(),0,num2);
}
}
else if(v == message)
{
menu.setHeaderTitle("Message");
menu.add(0,v.getId(),0,num1);
if(num2 != "")
{
menu.add(0,v.getId(),0,num2);
}
}
}
主要功能是,如果用户只有一个联系人号码,那么上下文菜单中应该只显示一个号码。但是,这就是问题所在:
如果没有第二个联系电话,则显示空白space。而且,它是可点击的!
我的逻辑:我正在使用 TextView 来显示存储在数据库中的数字。我正在使用 String 来存储 TextView 的数据。如果第二个数字的字符串不为空,则将该项目添加到上下文菜单。
请帮我解决这个问题! 提前致谢。
在 java 中你应该使用
!num2.isEmpty()
而不是
num2 != ""
字符串比较就像
string1.equals(string2) ; //to match 2 strings
string.isEmpty() //to check if string is empty
在 java.
阅读 this 了解更多详情。
最好的是..
if(num2.trim().lenght()>0)
{
menu.add(0,v.getId(),0,num2);
}