2016-06-28 70 views
-2

我正试图实现联系人应用程序。这里的源:在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); 
     } 
    } 
} 

主要功能是,如果用户只有一个接触否定的,那么只有一个号码,应在所示上下文菜单。但是,这就是问题所在:

The Problem

它显示了一个空白,如果没有第二次接触没有。而且,它是可点击的!

我的逻辑:我使用TextView来显示存储在数据库中的数字。我使用String来存储TextView的数据。如果第二个数字的字符串不为空,则将该项目添加到上下文菜单。

请帮我这个! 在此先感谢。

+0

你知道java吗? 'num2!=“”'它应该做什么? – Selvin

+0

如果'num2'不为空,即如果联系人有第二个号码,则将其添加到上下文菜单中,否则不要添加它 – beingadityak

回答

0

在java中,你应该使用的

!num2.isEmpty() 

代替

num2 != "" 

字符串对比就像

string1.equals(string2) ; //to match 2 strings 
string.isEmpty() //to check if string is empty 

在java中完成的。

阅读this了解更多详情。

0

最好的是..

if(num2.trim().lenght()>0) 
    { 
     menu.add(0,v.getId(),0,num2); 
    }