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