2017-05-17 196 views
0

我試圖做一個程序,它比較字符串如何比較if語句

button = (Button) findViewById(R.id.button); 

button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     InputMethodManager imm=(InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE); 
     imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0); 

     if(inpt==null)op.setText("Please Enter"); 
     else if (inpt.equals("a")) op.setText("a entered"); 
     else if (inpt.equals("b")) op.setText("b entered"); 

     else op.setText("unknown keyword"); 

但總是執行else語句的字符串。請幫我解決這個代碼

我是一個新手,不知道多少尚未.......

+2

'inpt'變量的類型是什麼? –

+0

字符串喜歡還是隻是字母 –

+2

什麼值和分配給'inpt'變量的位置? –

回答

0

它,因爲這INPT字符串聲明最終。意味着數值不能改變,並且字符串 inpt必須每次更新時纔會執行onClick操作。否則,它會採取相同的價值,並得到執行其他部分。所以我刪除了最後的關鍵字,並在onClick函數中聲明瞭字符串。嘗試這個。

public class MainActivity extends AppCompatActivity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final EditText ip=(EditText)findViewById(R.id.ip); 

    final TextView op=(TextView)findViewById(R.id.op); 
    //final String inpt=ip.getText().toString(); 


    Button button = (Button) findViewById(R.id.button); 
    button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
      String inpt=ip.getText().toString(); 
       InputMethodManager imm=(InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE); 
       imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0); 

       if(inpt==null)op.setText("Please Enter"); 
       else if (inpt.equals("a")) op.setText("a entered"); 
       else if (inpt.equals("b")) op.setText("b entered"); 

       else op.setText("Unknown keyword"); 

      } 
     }); 
    }