我创建了一个可编辑的自定义列表视图,其中包含listview外部的按钮。我想保存用户在按钮单击时输入的editText值。我的编辑文本在基础适配器类中,我的列表和按钮在活动类中,我从列表中访问编辑文本时遇到问题,我的代码由于空指针异常而崩溃
public class ProductsList extends Activity{
ProductListAdapter dataAdapter;
ProgressDialog progressDialog=null;
ListView listView;
UserSQLiteDB usersqlite_obj;
ArrayList<Products> prodlist;
EditText edChemistName, edChemistAddr;
Button btnSave;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.productlist);
edChemistName = (EditText) findViewById(R.id.editText1);
edChemistAddr = (EditText) findViewById(R.id.editText2);
btnSave =(Button)findViewById(R.id.button1);
listView = (ListView)findViewById(R.id.listView1);
usersqlite_obj = new UserSQLiteDB(this);
progressDialog = ProgressDialog.show(this, "Saved","Please wait...", true);
// new Thread() {
runOnUiThread(new Runnable() {
public void run() {
try{
usersqlite_obj.open();
prodlist = new ArrayList<Products>();
prodlist = usersqlite_obj.getProductsList();
Log.e("prodlist", "1");
dataAdapter = new ProductListAdapter(ProductsList.this,prodlist);
listView.setAdapter(dataAdapter);
usersqlite_obj.close();
} catch (Exception e) {
Log.d("error",e.getMessage());
}
dismissLoadingDialog();
}
});
}
public void buttonClick(View V) {
for(int i=0;i<listView.getCount();i++){
View row = listView.getChildAt(i);
Log.e("editText clicked", "yes");
EditText editText= (EditText) row.findViewById(R.id.ed);
if (editText.length()>0){
String text = editText.getText().toString();
Log.e("extracted text", "text");
}
}
答案 0 :(得分:1)
如果你想在你的适配器类中使用listview的edittext数据,那么你应该在适配器类中传递这个liatview,或者你可以在激活文件中设置这个适配器。