0
我有一个问题ArrayAdapter
和listView
。我在ArrayAdapter
中添加字符串列表,其中调试器显示我的工作没有缺陷,但是我看不到任何添加在我的listView
上的内容。 (基于类似的问题) 事情,我试图用它做: +添加它里面runOnUiThread
,但这没有帮助或我没有正确 用它+无效视图 +设置适配器一次 +添加到values
和使用`adapter.notifyDataSetChanged() ,我不知道我能做些什么,使工作ArrayAdapter更新但不显示在listView中
这里是我的代码,如果它有助于:
public class RunnerApp extends Activity {
private ListView listView;
private ArrayList<String> values;
private ArrayAdapter<String> adapter;
private Intent newTable;
private String newName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_runner_app);
listView = (ListView) findViewById(R.id.mylist);
values = new ArrayList<String>();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values);
listView.setAdapter(adapter);
adapter.add("x");
adapter.notifyDataSetChanged();
}
//handled by android:onClick in layout file
public void addTable(View v){
newTable = new Intent(this, AddTable.class);
startActivityForResult(newTable, 1);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1 && resultCode == Activity.RESULT_OK && data != null){
data.getData();
Log.d("add", "got intent");
newName = data.getStringExtra("com.example.runnerapp.NAME");
Log.d("add", "string " + newName);
Runnable run = new Runnable(){
public void run(){
if(newName != null) {
values.add(newName);
adapter.notifyDataSetChanged();
}
}
};
runOnUiThread(run);
}
}
@Override
public void onResume(){
super.onResume();
setContentView(R.layout.activity_runner_app);
}
}
public class AddTable extends Activity {
public final static String EXTRA_NAME = "com.example.runnerapp.NAME";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_table);
}
//handled by android:onClick in layout file
public void addThisTable(View v) {
Intent addTable = new Intent();
EditText editText = (EditText) findViewById(R.id.addTableField);
String name = editText.getText().toString();
addTable.putExtra(EXTRA_NAME, name);
setResult(Activity.RESULT_OK, addTable);
this.finish();
}
}
需要它看起来像有一个'addTable'的调用可能会丢失? –
它是由布局中的'android:onClick'按钮完成的,我是否也应该发布布局文件? – jacobz
你应该评论代码以反映这一点,实际上你可以发布'AddTable'类吗? –