1

問題があります

textviewの値を変更したい。コードを変更すると変更されます

これがコードです

public class SubMenuActivity extends Activity {
private static final int GALLERY = 0;
private static final int SUBMANU01 = 7;
private static final int MANU01 = 1;
private static final int MANU02 = 2;
private static final int MANU03 = 3;
private static final int MANU04 = 4;
private static final int MANU05 = 5;
TextView tx1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    tx1 =(TextView)this.findViewById(R.id.textView1);
   if(tx1.toString()=="1".toString())
   {
       tx1.setText("7");
   }
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    SubMenu fileMenu = menu.addSubMenu(GALLERY, SUBMANU01, Menu.NONE, "File");    
    fileMenu.add(GALLERY, MANU01, Menu.NONE, "new");  
    fileMenu.add(GALLERY, MANU02, Menu.NONE, "open");  
    fileMenu.add(GALLERY, MANU03, Menu.NONE, "save");  
    return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case MANU01:
    case MANU02:
    case MANU03:
    final   String itemid = Integer.toString(item.getItemId());
         tx1.setText(itemid);
        return true;
    }
    return super.onOptionsItemSelected(item);
}

tx1.text値に7が表示されませんでしたが、どこに問題がありますか?誰かが私に問題を教えてくれることを願っています。

4

6 に答える 6

5

このように比較

 if(tx1.getText().toString().equals("1"))
 {
   tx1.setText("7");
 }
于 2012-09-27T04:05:50.593 に答える
1

==文字列は演算子で比較できません.equalsメソッドで比較できます

だからあなたのコードをこれに変更してください

if(tx1.toString().equals("1"))
 {
   tx1.setText("7");
 }
于 2012-09-27T04:05:05.573 に答える
1

それ以外の

if(tx1.toString()=="1".toString())    {
    tx1.setText("7");   
} 

これを試して

if(tx1.getText().toString().equals("1"))    { 
   tx1.setText("7");    
} 
于 2012-09-27T04:06:21.930 に答える
0

まず、txt1 の値を出力する必要があります。

System.out.println("value of tx1:"+tx1.getText.toString());
if(tx1.getText().toString().equals("1"))

 {
   tx1.setText("7");
 }
于 2012-09-27T04:27:29.210 に答える
0

次のように変数を比較する必要があります.equal(Object/String)

if(tx1.toString().equals("1"))
 {
   tx1.setText("7");
 }
于 2012-09-27T04:08:21.323 に答える
0

Java では、「==」はアドレスが同じであることを意味します。代わりに、基本クラス「オブジェクト」に由来する .equel() を使用できます。

于 2012-09-27T04:19:09.533 に答える