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" ;
}
1. IntentでgetStringExtra()を呼び出すことができます.getExtras()を呼び出してからgetString()を後で呼び出す必要はありません。 2. A欠落バンドル値のgetString()、ではない "" からnullを返します。 3. putExtra()を呼び出して、Intentに値を格納するコードを送信することができます。それと他のコードがなければ、あなたを支援することは難しいでしょう。 – CommonsWare
こんにちは、私はコメントとしてコードを投稿します。一つのこと、私は(何回も)デバッグし、searchTextの値がnullではなく ""であることを発見しました。あなたが助けてくれることを願って! – Dennie