问题描述
在我的应用程序两个编辑框在那里,点击相应的编辑框时,它会显示一个列表视图(这是另一个intent.From用户必须选择1输入,我分配这些价值的textbox.Myproblem是,当我设置值1编辑框,然后点击另一个文本框来获取值第一文本框的值是不存在的。
我的code是:
屏幕采用的EditText框:
公共无效的onCreate(包savedInstanceState)
{
最后弦乐fromunit = getIntent()getStringExtra(Fromunit)。
最后弦乐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);
按钮B1 =(按钮)findViewById(R.id.button1);
EditText上meditto =(EditText上)findViewById(R.id.editText3);
meditfrom.setText(fromunit);
meditto.setText(tounit);
meditfrom.setOnTouchListener(新View.OnTouchListener(){
@覆盖
公共布尔onTouch(视图V,MotionEvent ARG1)
意图FromIntent =新的意图(v.getContext(),Fromlist.class);
startActivity(FromIntent);
返回false;
}
});
meditto.setOnTouchListener(新View.OnTouchListener(){
@覆盖
公共布尔onTouch(视图V,MotionEvent ARG1)
{
// TODO自动生成方法存根
意图ToIntent =新的意图(v.getContext(),Tolist.class);
startActivity(ToIntent);
返回false;
}
});
ListView控件屏幕:
有关第一次编辑框:
公共无效的onCreate(包savedInstanceState)
{
super.onCreate(savedInstanceState);
setListAdapter(新ArrayAdapter<字符串>(这一点,R.layout.fromunit,FROMUNIT));
ListView的LV = getListView();
lv.setTextFilterEnabled(真正的);
lv.setOnItemClickListener(新OnItemClickListener()
{
公共无效onItemClick(适配器视图<>母公司视图中查看,
INT位置,长的id){
//单击时,显示出与TextView的文字敬酒
// Toast.makeText(getApplicationContext(),((TextView的)视图).getText()
// Toast.LENGTH_SHORT).show();
意图preV =新的意图(view.getContext(),ServiceExampleActivity.class);
prev.putExtra(Fromunit,((TextView的)视图).getText());
startActivity(preV);
}
});
}
对于第二edittextbox:
公共无效的onCreate(包savedInstanceState)
{
super.onCreate(savedInstanceState);
setListAdapter(新ArrayAdapter<字符串>(这一点,R.layout.fromunit,TOUNIT));
ListView的LV = getListView();
lv.setTextFilterEnabled(真正的);
lv.setOnItemClickListener(新OnItemClickListener()
{
公共无效onItemClick(适配器视图<>母公司视图中查看,
INT位置,长的id){
//单击时,显示出与TextView的文字敬酒
// Toast.makeText(getApplicationContext(),((TextView的)视图).getText()
// Toast.LENGTH_SHORT).show();
意图preV =新的意图(view.getContext(),ServiceExampleActivity.class);
prev.putExtra(Tounit,((TextView的)视图).getText());
startActivity(preV);
}
});
}
您应该使用 startActivityForresult()
方法来启动另一个活动
例如:在FirstActivity
INT REQUEST_ code = 1;
公共布尔onTouch(视图V,MotionEvent ARG1)
意图FromIntent =新的意图(v.getContext(),Fromlist.class);
startActivityForresult(FromIntent,REQUEST_ code);
返回false;
}
});
在secondActivity如果要发回数据。
意图returnIntent =新意图();
returnIntent.putExtra(结果,结果);
的setResult(RESULT_OK,returnIntent);
完();
如果你不想返回数据。
意图returnIntent =新意图();
的setResult(RESULT_CANCELED,returnIntent);
完();
现在在你的FirstActivity类写入以下$ C $下 onActivityResult()
方法
保护无效onActivityResult(INT申请code,INT结果code,意图数据){
如果(要求code == REQUEST_ code){
如果(结果code == RESULT_OK){
字符串结果= data.getStringExtra(结果);
}
如果(结果code == RESULT_CANCELED){
//写您的code在没有结果返回
}
} // onAcrivityResult
In my application Two edit boxes are there,when clicking appropriate Editbox it will show An listview(which is another intent.From that user have to select 1 input,i am assigning these value to the textbox.Myproblem is when i set value for 1 editbox and clicking another textbox to get values the 1st textbox value is not there.
My Code is:
Screen with edittext box:
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;
}
});
The ListView Screen:
FOR 1st editbox:
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);
}
});
}
You should use startActivityForresult()
method to start another Activity
eg: In 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;
}
});
In secondActivity if you want to send back data
Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(RESULT_OK,returnIntent);
finish();
if you don't want to return data
Intent returnIntent = new Intent();
setResult(RESULT_CANCELED, returnIntent);
finish();
Now in your FirstActivity class write following code for onActivityResult()
method
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
这篇关于获取EDITTEXT值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!