我正在尝试在 Listview 中动态输入数据。我正在使用第二个类文件作为对话框来获取数据并通过 Intent 传递数据。传递的数据是字符串的形式,而要显示在Listview中的arrayadapter中的数据是Arraylist的形式。请帮我解决这个问题。
提前致谢。
我附上下面的代码
MainActivity.class
package com.example.listview;
import java.util.ArrayList;
import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ListActivity;
import android.content.Intent;
import android.text.method.DialerKeyListener;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ListView lv = (ListView) findViewById(R.id.listView1);
final Button btn = (Button) findViewById(R.id.button1);
final EditText input = (EditText) findViewById(R.id.editText1);
btn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// array.add(input.getText().toString());
// adapter.notifyDataSetChanged();
Intent i = new Intent(MainActivity.this,adddialog.class);
startActivity(i);
}
});
ArrayList<String> array = new ArrayList<String>();
final ArrayAdapter<String> adapter = new ArrayAdapter<String> (MainActivity.this,android.R.layout.simple_list_item_1,array);
lv.setAdapter(adapter);
Intent i2 = getIntent();
String n = i2.getStringExtra("name");
array.add(n);
adapter.notifyDataSetChanged();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
添加对话框
Dialog.class
package com.example.listview;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class adddialog extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.adddialog);
final EditText in = (EditText) findViewById(R.id.editText1);
final Button btn1 = (Button) findViewById(R.id.enter);
btn1.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
Intent i1 = new Intent(adddialog.this,MainActivity.class);
i1.putExtra("name", in.getText().toString());
startActivity(i1);
}
});
}
}