Question

Comment obtenir la valeur de EditText de sous-activité? Avec une condition que si je clique sur le bouton de retour sur le téléphone, il n'y a pas d'erreur dans la sous-activité?

Ceci est mon Sous-activité Code:

    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();       
    }
}

Ceci est mon Activité-Résultat:

@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;
        }
    }
Était-ce utile?

La solution

Tout d'abord, vous ne devriez pas tenter toute sorte d'action si l'utilisateur clique sur le bouton « retour ». Il est un bouton global qui signifie « me sortir d'ici maintenant », et il est généralement compris que l'utilisateur ne veut rien d'autre que de revenir un écran pour se produire en raison de cela.

Alors ce que vous devez faire est dans votre searchButton.setOnClickListener, dans le onClick, créer une intention vide comme ceci:

Intent data = new Intent();

Ensuite, vous devez être en ajoutant la valeur de votre EditText comme une valeur supplémentaire, comme suit:

data.putExtra(SBooksDbAdapter.KEY_TITLE_RAW, mTextSearch.getText().toString());

Enfin, inclure cette intention dans votre appel setResult:

setResult(RESULT_OK, data);

Dans votre onActivityResult tirer la valeur de l'intention que vous faites déjà et vous devriez être bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top