サブActivityからのEditTextの値を取得します。
-
12-09-2019 - |
質問
サブActivityからのEditTextの値を取得するには?私は携帯電話のボタンをクリックすると、バック、サブアクティビティには誤りがないことを?条件付き
これは私のサブアクティビティのコードです
public class SBooksSearch extends Activity {
private EditText mTextSearch;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sbooks_search);
mTextSearch = (EditText)findViewById(R.id.edit_search);
Button searchButton = (Button)findViewById(R.id.btn_search);
searchButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent data = new Intent();
data.putExtra(SBooksDbAdapter.KEY_TITLE_RAW, mTextSearch.getText().toString());
setResult(RESULT_OK, data);
finish();
}
});
}
@Override
protected void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);
}
@Override
protected void onPause(){
super.onPause();
}
@Override
protected void onResume(){
super.onResume();
}
}
の これは私の活動の結果であります
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
super.onActivityResult(requestCode, resultCode, intent);
switch(requestCode){
case ACTIVITY_SEARCH:
Bundle extras = getIntent().getExtras();
mTitleRaw = extras != null ? extras.getString(SBooksDbAdapter.KEY_TITLE_RAW) : null;
if(mTitleRaw!=null){
Cursor cursor = mDbHelper.searchData(mTitleRaw);
String[] from = new String[]{ SBooksDbAdapter.KEY_ROWID,
SBooksDbAdapter.KEY_TITLE, SBooksDbAdapter.KEY_LYRICS };
int[] to = new int[]{ R.id.id, R.id.title, R.id.lyrics };
SimpleCursorAdapter adapter =
new SimpleCursorAdapter(this, R.layout.sbooks_row, cursor, from, to );
setListAdapter(adapter);
}
break;
}
}
解決
まず第一に、あなたは、アクションの任意の並べ替えを試みるべきではありません。それは、「今、ここから私を得る」という意味グローバルなボタンだし、通常、ユーザがその結果として発生するために戻って一つの画面に行く以外は何も望んでいないことが理解されます。
あなたが何をする必要があるかのonClickで、空の意図を作成し、あなたのsearchButton.setOnClickListenerであるので、同様ます:
Intent data = new Intent();
そして、あなたがそうのように、余分な値としてあなたのEditTextの値を加算しする必要があります:
data.putExtra(SBooksDbAdapter.KEY_TITLE_RAW, mTextSearch.getText().toString());
最後に、あなたのsetResult呼び出しで、この意図が含まれます:
setResult(RESULT_OK, data);
あなたのonActivityResultですでにやっているように意図から外れ値を引き、あなたは問題ないはずです。