2016-06-28 23 views
-2

私は連絡先アプリケーションを実装しようとしています。ここでは、ソースです:ユーザーはなし、1つのだけ番号が示すべきである唯一の接点を持っている場合アンドロイドでコンテキストメニュー項目を動的に変更

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); 
     } 
    } 
} 

主な機能は、次のとおりです。今

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); 
     } 
    }); 

、これはコンテキストメニューの一部でありますコンテキストメニュー。しかし、これは問題がある:なし第二の接触がない場合

The Problem

はそれが無い空白を示しています。そして、それはクリック可能です!

私のロジック:データベースに保存されている数値を表示するためにTextViewを使用しています。私はTextViewのデータを格納するためにStringを使用しています。 2番目の数値のStringがnullでない場合は、項目をコンテキストメニューに追加します。

私を助けてください! ありがとうございます。 Javaで

+0

のですか? 'num2!=" "'それは何をすべきか? – Selvin

+0

「num2」がヌルでない場合、つまり連絡先に2番目の番号がある場合はコンテキストメニューに追加し、それ以外の場合は追加しない – beingadityak

答えて

0

あなたの代わりに

num2 != "" 

文字列の比較ですが、Javaで

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

のように行われている

!num2.isEmpty() 

を使用する必要があります。

詳細はthisをご覧ください。

0

ベスト1は、Javaを知っています。..

if(num2.trim().lenght()>0) 
    { 
     menu.add(0,v.getId(),0,num2); 
    } 
関連する問題