如何获取 ListView 的值并将其保存在 EditText 或其他活动中的其他内容中
How to get the value of ListView and save it in the EditText or something else in another activitiy
有一个带输入框的activity,它用ListView调用第二个activity。 我需要从 ListView 中获取值,然后 return 将其输入到第一个 activity 的输入字段中。不能 return 一个值,但是 activity 切换没有错误。
MainActivity
edTAirportchoice1 = (EditText) findViewById(R.id.edText);
edText.setOnClickListener(this);
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, ListActivity.class);
startActivityForResult(intent, 1);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (data == null) {
return;
} String name = getIntent().getStringExtra("name");
edText.setText(name);
}
}
ListActivity
list1 = (ListView) findViewById(R.id.list1);
list1.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, s1));
list1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), s1[position], Toast.LENGTH_LONG).show();
Intent intent = new Intent(ListActivity.this, MainActivity.class));
intent.putExtra("name", s1[position]);
setResult(1,intent);
finish();
public void onClick(View v) {
Intent intent = new Intent(ListActivity.this, MainActivity.class);
intent.putExtra("name", edText.getText().toString()); //("name", list1.getOnItemClickListener().toString())- the same result
startActivity(intent);
Intent intent = new Intent();
intent.putExtra("name", selectedResult);
setResult(1, intent);
为此目的使用 Intent,
从 ListActivity
到 MainActivity
public void onClick(View v) {
Intent intent = new Intent(ListActivity.this, MainActivity.class);
intent.putExtra("name", list1.getOnItemClickListener().toString());
startActivity(intent);
}
现在在 MainActivity
获取名称的这个值,
String name= getIntent().getStringExtra("name");
现在在 MainActivity
的文本视图中设置值,
txtView.setText(name);
在 2 个活动之间共享一些数据的正确方法是:
public static final int REQUEST_LIST = 1;
// Call this to show ListActivity
Intent intent = new Intent(MainActivity.this, ListActivity.class);
startActivityForResult(intent, REQUEST_LIST);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch(requestCode) {
case REQUEST_LIST:
if (data == null) return;
String name = getIntent().getStringExtra("name");
edText.setText(name);
break;
default:
break;
}
}
}
然后在ListActivity中你需要:
list1 = (ListView) findViewById(R.id.list1);
list1.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, s1));
list1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent resultIntent = new Intent();
resultIntent.putExtra("name", s1[position]);
setResult(RESULT_OK, resultIntent);
finish();
});
有一个带输入框的activity,它用ListView调用第二个activity。 我需要从 ListView 中获取值,然后 return 将其输入到第一个 activity 的输入字段中。不能 return 一个值,但是 activity 切换没有错误。
MainActivity
edTAirportchoice1 = (EditText) findViewById(R.id.edText);
edText.setOnClickListener(this);
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, ListActivity.class);
startActivityForResult(intent, 1);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (data == null) {
return;
} String name = getIntent().getStringExtra("name");
edText.setText(name);
}
}
ListActivity
list1 = (ListView) findViewById(R.id.list1);
list1.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, s1));
list1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), s1[position], Toast.LENGTH_LONG).show();
Intent intent = new Intent(ListActivity.this, MainActivity.class));
intent.putExtra("name", s1[position]);
setResult(1,intent);
finish();
public void onClick(View v) {
Intent intent = new Intent(ListActivity.this, MainActivity.class);
intent.putExtra("name", edText.getText().toString()); //("name", list1.getOnItemClickListener().toString())- the same result
startActivity(intent);
Intent intent = new Intent();
intent.putExtra("name", selectedResult);
setResult(1, intent);
为此目的使用 Intent,
从 ListActivity
到 MainActivity
public void onClick(View v) {
Intent intent = new Intent(ListActivity.this, MainActivity.class);
intent.putExtra("name", list1.getOnItemClickListener().toString());
startActivity(intent);
}
现在在 MainActivity
获取名称的这个值,
String name= getIntent().getStringExtra("name");
现在在 MainActivity
的文本视图中设置值,
txtView.setText(name);
在 2 个活动之间共享一些数据的正确方法是:
public static final int REQUEST_LIST = 1;
// Call this to show ListActivity
Intent intent = new Intent(MainActivity.this, ListActivity.class);
startActivityForResult(intent, REQUEST_LIST);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch(requestCode) {
case REQUEST_LIST:
if (data == null) return;
String name = getIntent().getStringExtra("name");
edText.setText(name);
break;
default:
break;
}
}
}
然后在ListActivity中你需要:
list1 = (ListView) findViewById(R.id.list1);
list1.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, s1));
list1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent resultIntent = new Intent();
resultIntent.putExtra("name", s1[position]);
setResult(RESULT_OK, resultIntent);
finish();
});