2009-09-04 12 views
0

私はBundleの文字列値(Search-ActivityのユーザーからのEdittext入力)を入れました。次に、ユーザーがEdittextを値なしで残したかどうかを確認するためのBundle(Result-Activity)を取得しました。しかし、それは動作していません。文が何か間違っている。何もチェックされていないようです。最初に "If"が実行され、次に "Else"がデバッグされて見えました。誰か助けてくれますか?androidのバンドルに関する問題

検索-活動:

@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. A欠落バンドル値のgetString()、ではない "" からnullを返します。 3. putExtra()を呼び出して、Intentに値を格納するコードを送信することができます。それと他のコードがなければ、あなたを支援することは難しいでしょう。 – CommonsWare

+0

こんにちは、私はコメントとしてコードを投稿します。一つのこと、私は(何回も)デバッグし、searchTextの値がnullではなく ""であることを発見しました。あなたが助けてくれることを願って! – Dennie

答えて

1

の代わりに:

if (searchText != "") 

試してみてください。

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

ありがとう!それは仕事です! – Dennie

関連する問題