2017-02-18 94 views
1

请帮帮忙,变量字符串=值(字符串),但结果是假

whay结果if(Title.toString().trim() == "camera")false
我的代码:

mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
       //Get item at position 
       GridMenuItem item = (GridMenuItem) parent.getItemAtPosition(position); 
       String Title =item.getTitle(); 
       if(Title.toString().trim() == "camera"){ 

        String strPhoneNumber; 
        Bundle b = getIntent().getExtras(); 
        strPhoneNumber = b.getString("phonenumber"); 

        Intent myIntent = new Intent(v.getContext(), UploadActivity.class); 
        Bundle bs = new Bundle(); 
        bs.putString("phonenumber", strPhoneNumber); //Your id 
        myIntent.putExtras(b); //Put your id to your next Intent 
        startActivityForResult(myIntent, 0); 
        finish(); 
       } 
       if(Title.toString() =="history"){ 
        Intent myIntent = new Intent(v.getContext(), HistoryActivity.class); 
        startActivityForResult(myIntent, 0); 
       } 
       if(Title.toString() =="setting"){ 
        Intent myIntent = new Intent(v.getContext(), HistoryActivity.class); 
        startActivityForResult(myIntent, 0); 
       } 

      } 
     }); 

debug

+2

的可能的复制[我如何在Java中比较字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – Henry

+0

@Henry使用'String.equals(String params)'方法。 http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#equals(java.lang.Object) – Distjoy

+0

@亨利,很多谢谢,它的工作 –

回答

1

更改这样的代码:

mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
       //Get item at position 
       GridMenuItem item = (GridMenuItem) parent.getItemAtPosition(position); 
       String Title =item.getTitle().toString().trim(); 
       Log.d("testString",Title); 
       if(Title.equals("camera")){ 

        String strPhoneNumber; 
        Bundle b = getIntent().getExtras(); 
        strPhoneNumber = b.getString("phonenumber"); 

        Intent myIntent = new Intent(v.getContext(), UploadActivity.class); 
        Bundle bs = new Bundle(); 
        bs.putString("phonenumber", strPhoneNumber); //Your id 
        myIntent.putExtras(b); //Put your id to your next Intent 
        startActivityForResult(myIntent, 0); 
        finish(); 
       } 
       if(Title.equals("history")){ 
        Intent myIntent = new Intent(v.getContext(), HistoryActivity.class); 
        startActivityForResult(myIntent, 0); 
       } 
       if(Title.equals("setting")){ 
        Intent myIntent = new Intent(v.getContext(), HistoryActivity.class); 
        startActivityForResult(myIntent, 0); 
       } 

      } 
     }); 

请在下面的评论中发布log“testString”的值。 看看它是否显示“相机”而不是“相机”,然后相应地更改if声明。

+1

很多谢谢,这是工作 –

0

试试这个

Title.equals ("camera") 

因为标题是一个字符串,就没有必要使用的toString和修剪

+0

很多谢谢,它的工作 –

0

if(Title.toString().equal("camera"))

因为在Java String是一个对象类型(参考),所以你必须使用相同的,而不是==。

“==”运营商正在使用基本类型只(如int,长......)

+0

很多谢谢,这是工作 –