2009-09-04 62 views
0

我已經在Bundle中添加了一個String值(用戶在我的搜索活動中的Edittext輸入)。然後我得到Bundle(結果 - 活動)來檢查用戶是否離開Edittext沒有任何價值。但它不起作用。如果陳述有問題。似乎沒有任何檢查。我調試並看到第一個「如果」被執行,然後「Else」。有人能幫我嗎?Android中的Bundle問題

搜索的活動:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     mDbHelper = new SBooksDbAdapter(this); 
     mDbHelper.open(); 
     setContentView(R.layout.sbooks_search); 

     mTextSearch = (EditText)findViewById(R.id.text_search);  
     searchButton = (Button)findViewById(R.id.btn_search); 

     mTextSearch.setFocusableInTouchMode(true); 
     mTextSearch.setHint(R.string.button_hint); 

     searchButton.setOnClickListener(new View.OnClickListener(){ 
      public void onClick(View v){   
        startSearch();         
      } 
     }); 
    } 
    // Start Activity Search Result 
    public void startSearch(){     
     Bundle bundle = new Bundle();  
     bundle.putString(SBooksDbAdapter.KEY_TITLE_RAW, mTextSearch.getText().toString()); 

     Intent intentSearch = new Intent(this, SBooksSearchResult.class); 
     intentSearch.putExtras(bundle);  
     this.startActivity(intentSearch);   
    } 

結果-Acitity:

Bundle bundle = getIntent().getExtras();   
    String searchText = bundle.getString(SBooksDbAdapter.KEY_TITLE_RAW);   

    if(searchText != "") 
    { 
     // Do nothing   
    } 
    else { 
     searchText = "Hello" ; 
    } 
+2

1.你可以在Intent上調用getStringExtra() - 你不需要調用getExtras(),然後再調用getString()。 2.丟失的Bundle值從getString()返回null,而不是「」。 3.您可能希望在您要調用putExtra()的地方發佈代碼以將值存儲在Intent中。沒有這些,也許還有其他的代碼,這將很難幫助你。 – CommonsWare 2009-09-04 14:22:32

+0

嗨,我發表你的評論代碼。有一件事,我調試(太多次),發現searchText的值是「」,而不是null。希望你能幫忙! – Dennie 2009-09-04 15:21:23

回答

1

相反的:

if (searchText != "") 

嘗試:

if (!searchText.equals("")) 
+0

謝謝!是工作! – Dennie 2009-09-09 03:10:47