Android 获取编辑文本值

Android 获取编辑文本值,android,android-edittext,Android,Android Edittext,在我的应用程序中,有两个编辑框,当单击相应的编辑框时,它将显示一个ListView,这是另一个意图。从该用户必须选择1个输入,我将这些值分配给文本框。我的问题是,当我为1个编辑框设置值并单击另一个文本框以获取值时,第一个文本框值不存在 我的代码是: 带有编辑文本框的屏幕: public void onCreate(Bundle savedInstanceState) { final String fromunit=getIntent().getStringExtra(

在我的应用程序中,有两个编辑框,当单击相应的编辑框时,它将显示一个ListView,这是另一个意图。从该用户必须选择1个输入,我将这些值分配给文本框。我的问题是,当我为1个编辑框设置值并单击另一个文本框以获取值时,第一个文本框值不存在

我的代码是:

带有编辑文本框的屏幕:

 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;
            }
        });
ListView屏幕:

第一版编辑框:

  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);
              }
            });        
        }   
试一试

您应该使用startActivityForresult方法启动另一个活动

在第一次活动中

 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();
现在,在第一个Activity类中,为onActivityResult方法编写以下代码


Maulik J它已经是一个字符串了。我的问题是,当我选择第一版文本时,它将显示用户选择的内容,而当我选择第二版编辑文本框时,它将仅显示第二版文本框值第一版文本框值为空。使用SharedReferences概念而不是edittext/Listview,为什么不使用微调器?
Intent returnIntent = new Intent();
setResult(RESULT_CANCELED, returnIntent);        
finish();
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