-1

私のアプリケーションには2つの編集ボックスがあり、適切な編集ボックスをクリックすると、リストビューが表示されます(これは別の意図です。そのユーザーから1つの入力を選択する必要があります。これらの値をテキストボックスに割り当てています。編集ボックスを開き、別のテキストボックスをクリックして値を取得すると、最初のテキストボックスの値がありません。

私のコードは次のとおりです。

edittext ボックスのある画面:

 public void onCreate(Bundle savedInstanceState) 
    {
        final String fromunit=getIntent().getStringExtra("Fromunit");
        final String tounit=getIntent().getStringExtra("Tounit");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);       
        EditText medit=(EditText)findViewById(R.id.editText1);
        EditText meditfrom=(EditText)findViewById(R.id.editText2);
        Button b1=(Button)findViewById(R.id.button1);
        EditText meditto=(EditText)findViewById(R.id.editText3);
        meditfrom.setText(fromunit);
        meditto.setText(tounit);
        meditfrom.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent arg1) 
Intent  FromIntent= new Intent(v.getContext(),Fromlist.class);
                 startActivity(FromIntent); 
                return false;
            }
        });

  meditto.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent arg1) 
            {
                // TODO Auto-generated method stub
                 Intent  ToIntent= new Intent(v.getContext(),Tolist.class);
                 startActivity(ToIntent);   
                return false;
            }
        });

リストビュー画面:

最初の編集ボックスの場合:

  public void onCreate(Bundle savedInstanceState) 
            {
                super.onCreate(savedInstanceState);
                setListAdapter(new ArrayAdapter<String>(this, R.layout.fromunit, FROMUNIT));
                ListView lv = getListView();
                lv.setTextFilterEnabled(true);
                lv.setOnItemClickListener(new OnItemClickListener() 
                {
                  public void onItemClick(AdapterView<?> parent, View view,
                      int position, long id) {
                    // When clicked, show a toast with the TextView text
    //              Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
    //                  Toast.LENGTH_SHORT).show();
                      Intent prev=new Intent(view.getContext(),ServiceExampleActivity.class);
                      prev.putExtra("Fromunit",((TextView) view).getText());
                      startActivity(prev);
                  }
                });        
            }   


For 2nd edittextbox:



 public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setListAdapter(new ArrayAdapter<String>(this, R.layout.fromunit, TOUNIT));
            ListView lv = getListView();
            lv.setTextFilterEnabled(true);
            lv.setOnItemClickListener(new OnItemClickListener() 
            {
              public void onItemClick(AdapterView<?> parent, View view,
                  int position, long id) {
                // When clicked, show a toast with the TextView text
    //            Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
    //                Toast.LENGTH_SHORT).show();
                  Intent prev=new Intent(view.getContext(),ServiceExampleActivity.class);
                  prev.putExtra("Tounit",((TextView) view).getText());
                  startActivity(prev);
              }
            });        
        }   
4

2 に答える 2

2

メソッドを使用startActivityForresult()して別のアクティビティを開始する必要があります

例: FirstActivity で

 int REQUEST_CODE= 1;

 public boolean onTouch(View v, MotionEvent arg1) 
  Intent  FromIntent= new Intent(v.getContext(),Fromlist.class);
             startActivityForresult(FromIntent,REQUEST_CODE); 
            return false;
        }
    });

データを送り返したい場合は secondActivity で

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(RESULT_OK,returnIntent);     
finish();

データを返したくない場合

Intent returnIntent = new Intent();
setResult(RESULT_CANCELED, returnIntent);        
finish();

FirstActivity クラスで、onActivityResult()メソッドの次のコードを記述します

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == REQUEST_CODE) {

 if(resultCode == RESULT_OK){

  String result=data.getStringExtra("result");

}

if (resultCode == RESULT_CANCELED) {

 //Write your code on no result return 

}
}//onAcrivityResult
于 2012-05-02T11:38:17.440 に答える
0

試す

meditfrom.getText().toString();
于 2012-05-02T11:28:50.193 に答える