문제

하위 활동에서 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;
        }
    }
도움이 되었습니까?

해결책

우선, 사용자가 "뒤로"버튼을 누르면 어떤 종류의 조치도 시도해서는 안됩니다. 그것은 "지금 여기에서 나가게"를 의미하는 글로벌 버튼이며, 일반적으로 사용자는 그 결과로 한 화면을 되돌리는 것 외에는 아무것도 원하지 않는다는 것을 이해합니다.

따라서 SearchButton.setonClickListener는 OnClick에서 다음과 같은 빈 의도를 만듭니다.

Intent data = new Intent();

그런 다음 EditText의 값을 추가 값으로 추가해야합니다.

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

마지막으로,이 의도를 세트 레트 호출에 포함시킵니다.

setResult(RESULT_OK, data);

당신의 onactivityresult에서 당신이 이미하고있는 것처럼 의도에서 가치를 끌어 내고 당신은 괜찮을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top