Android:简单的 Listview 不使用 startActivityForResult() 显示数组中的字符串
Android: Simple Listview not displaying strings from array using startActivityForResult()
我有两个活动。我的主要和第二个主要,我在第二个主要中添加我的字符串,然后按后退按钮转到我的第一个主要。
但是,当我将数组传递给 arraylist 适配器中的 listview 时,它不起作用。
ArrayList<String> array= new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_address_list);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
private void Add() {
Intent intent = new Intent(AddressList.this, SilentGeofence.class);
startActivityForResult(intent, 2);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 2) {
String result = data.getStringExtra("result");
array.add(result);
System.out.println(array);
ArrayAdapter<String> adapter= new ArrayAdapter<String>(this,R.layout.activity_address_list,array);
ListView listview = (ListView) findViewById(R.id.listView);
listview.setAdapter(adapter);
}
}
这是我的第二个观点
Button add = (Button) findViewById(R.id.button);
add.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
String ag = txt1.getText().toString().trim();
if (ag.length() != 0) {
address.add(ag);
txt1.setText("");
System.out.println(address);
Intent returnIntent = new Intent(SilentGeofence.this,AddressList.class);
returnIntent.putExtra("result",address);
setResult(2,returnIntent);
}
}
});
这是我的地址列表 xml。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.anusha.app.AddressList"
>
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true" />
所以你应该做的是创建另一个 xml 文件,其中包含该列表视图的文本视图
<TextView
android:id="your id"
android:layout_width=""
android:layout_height=""/>
然后这样做
new ArrayAdapter<String>(this,R.layout.textviewlayout,R.id.youridforthattextview,array);
你的第一个 Activity:
String result = data.getStringExtra("result");
我们知道您的 ListView 基于字符串的 ArrayList。所以你添加结果:
array.add(result);
在你的第二个 Activity 你有一个字符串 ag
String ag = txt1.getText().toString().trim();
您似乎正在将其添加到列表中
address.add(ag);
但是您 return 列表
而不是字符串
returnIntent.putExtra("result",address);
也许您是想 return 字符串 ag
?
returnIntent.putExtra("result",ag);
我有两个活动。我的主要和第二个主要,我在第二个主要中添加我的字符串,然后按后退按钮转到我的第一个主要。 但是,当我将数组传递给 arraylist 适配器中的 listview 时,它不起作用。
ArrayList<String> array= new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_address_list);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
private void Add() {
Intent intent = new Intent(AddressList.this, SilentGeofence.class);
startActivityForResult(intent, 2);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 2) {
String result = data.getStringExtra("result");
array.add(result);
System.out.println(array);
ArrayAdapter<String> adapter= new ArrayAdapter<String>(this,R.layout.activity_address_list,array);
ListView listview = (ListView) findViewById(R.id.listView);
listview.setAdapter(adapter);
}
}
这是我的第二个观点
Button add = (Button) findViewById(R.id.button);
add.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
String ag = txt1.getText().toString().trim();
if (ag.length() != 0) {
address.add(ag);
txt1.setText("");
System.out.println(address);
Intent returnIntent = new Intent(SilentGeofence.this,AddressList.class);
returnIntent.putExtra("result",address);
setResult(2,returnIntent);
}
}
});
这是我的地址列表 xml。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.anusha.app.AddressList"
>
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true" />
所以你应该做的是创建另一个 xml 文件,其中包含该列表视图的文本视图
<TextView
android:id="your id"
android:layout_width=""
android:layout_height=""/>
然后这样做
new ArrayAdapter<String>(this,R.layout.textviewlayout,R.id.youridforthattextview,array);
你的第一个 Activity:
String result = data.getStringExtra("result");
我们知道您的 ListView 基于字符串的 ArrayList。所以你添加结果:
array.add(result);
在你的第二个 Activity 你有一个字符串 ag
String ag = txt1.getText().toString().trim();
您似乎正在将其添加到列表中
address.add(ag);
但是您 return 列表
而不是字符串returnIntent.putExtra("result",address);
也许您是想 return 字符串 ag
?
returnIntent.putExtra("result",ag);