一旦用户从我的ListView中选择产品,它就会将ListView中的选定文本放入EditText中。我遇到的问题是当用户从列表中选择产品然后再按下时,它再次出现列表而不是返回到EditText活动。
我尝试过使用“finish();”活动开始后,似乎没有任何工作。
包含启动List活动的EditText的活动:
EditText CPU = (EditText) findViewById(R.id.autoCompleteTextView4);
CPU.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent CPUList = new Intent(getApplicationContext(),
CPUList.class);
startActivityForResult(CPUList, 1);
Intent i = getIntent();
String product = i.getStringExtra("key");
EditText CPU = ((EditText) findViewById(R.id.autoCompleteTextView4));
CPU.setText(product);
}
});
列出视图类
@Override
public void onCreate(Bundle OnsaveInstanceState) {
super.onCreate(OnsaveInstanceState);
setContentView(R.layout.activity_cpulist);
ListView listViewCPU = (ListView) findViewById(R.id.listViewCPU);
listViewCPU.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
String CPUList[] = {
"CPU's go here", "CPU's go here", "CPU's go here", "CPU's go here" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, CPUList);
listViewCPU.setAdapter(adapter);
listViewCPU.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> listview, View myView,
int pos, long mylng) {
String CPU = (String) listview.getAdapter().getItem(pos);
Intent i = new Intent();
i.putExtra("key", CPU);
setResult(1, i);
finish();
}
});
答案 0 :(得分:1)
您需要以不会添加到后台堆栈的方式启动您的活动。 这是你如何做到的:https://stackoverflow.com/a/12358563/375929
答案 1 :(得分:0)
如果我理解正确,您就是在错误的finish()
上致电Activity
。如果您希望列表Activity
完成,那么您需要拨打finish()
@Override
public void onItemClick(AdapterView<?> listview, View myView,
int pos, long mylng) {
String CPU = (String) listview.getAdapter().getItem(pos);
Intent i = new Intent(getApplicationContext(),
ListmenuActivity.class);
i.putExtra("key", CPU);
startActivity(getIntent());
startActivity(i);
finish(); // finish here
}
并从finish()
EditText Activity
我看到的另一个问题是看起来你正在使用startActivityForResult()
开始第二个代码,但是你没有在第二个代码中发回结果。相反,你似乎正在开始另一个Activity
。似乎第二位应该更像
@Override
public void onItemClick(AdapterView<?> listview, View myView,
int pos, long mylng) {
String CPU = (String) listview.getAdapter().getItem(pos);
Intent i = new Intent();
i.putExtra("key", CPU);
setResult(1, i);
finish(); // finish here
}