从数据库获取行数据并在Android中检索
我正在处理一个有许多表的项目,一个表包含多行。如何从数据库中获取数据并使用从数据库获取行数据并在Android中检索,android,sqlite,nullpointerexception,simpleadapter,null-pointer,Android,Sqlite,Nullpointerexception,Simpleadapter,Null Pointer,我正在处理一个有许多表的项目,一个表包含多行。如何从数据库中获取数据并使用simpledapter显示数据 我尝试过使用游标,但我只得到存储在数据库中的最后一行值 尝试使用ArrayList时,我得到一个NullPointerException,即使使用try-catch块也无法解决该问题 下面是获取它的代码 public class ProducTransection extends Activity { AutoCompleteTextView actv; TextView
simpledapter
显示数据
我尝试过使用游标,但我只得到存储在数据库中的最后一行值
尝试使用ArrayList
时,我得到一个NullPointerException
,即使使用try-catch块也无法解决该问题
下面是获取它的代码
public class ProducTransection extends Activity {
AutoCompleteTextView actv;
TextView datefrom, dateto;
Button getbtn;
ArrayAdapter<String> adapname;
Cursor cl;
HashMap<String, String> detail = new HashMap<String, String>();
ArrayList<HashMap<String, String>> detailList;
ListView lv1;
DatabaseHandler db = new DatabaseHandler(ProducTransection.this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.producttransection);
actv = (AutoCompleteTextView)findViewById(R.id.ptname);
datefrom = (TextView)findViewById(R.id.ptfromdate);
dateto = (TextView)findViewById(R.id.pttodate);
getbtn = (Button)findViewById(R.id.ptgetbtn);
lv1 = (ListView)findViewById(R.id.ptlist);
Calendar dat = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String formdate = sdf.format(dat.getTime());
datefrom.setText(formdate);
dateto.setText(formdate);
String[] name = db.getName();
adapname = new ArrayAdapter<String>(ProducTransection.this, android.R.layout.simple_list_item_1, name);
actv.setAdapter(adapname);
getbtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
detailList = new ArrayList<HashMap<String, String>>();
cl = db.getproducttransection(actv.getText().toString(), datefrom.getText().toString(), dateto.getText().toString());
cl.moveToFirst();
// do
for(int i = 0; i <= cl.getColumnCount(); i++) {
String date = cl.getString(cl.getColumnIndex("date"));
String product = cl.getString(cl.getColumnIndex("product_name"));
String price = cl.getString(cl.getColumnIndex("price"));
String Qty = cl.getString(cl.getColumnIndex("qty"));
detail.put("dat", date);
detail.put("pro", product);
detail.put("pri", price);
detail.put("qty", Qty);
detailList.add(detail);
SimpleAdapter simadap = new SimpleAdapter(ProducTransection.this, detailList, R.layout.producttransectionui,
new String[] { "dat", "pro", "pri", "qty"},
new int[]{ R.id.ptuidate, R.id.ptuiproduct, R.id.ptuiprice, R.id.ptuiqty });
lv1.setAdapter(simadap);
}
// while(cl.moveToNext());
} catch (IndexOutOfBoundsException e) {
}
}
});
}
}
公共类ProductTransition扩展了活动{
自动完成文本视图actv;
TextView datefrom,dateto;
按钮getbtn;
ArrayAdapter adapname;
光标cl;
HashMap detail=新的HashMap();
ArrayList详细列表;
ListView lv1;
DatabaseHandler db=新的DatabaseHandler(productTransition.this);
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.ProductTranssection);
actv=(AutoCompleteTextView)findviewbyd(R.id.ptname);
datefrom=(TextView)findViewById(R.id.ptfromdate);
dateto=(TextView)findViewById(R.id.pttodate);
getbtn=(按钮)findviewbyd(R.id.ptgetbtn);
lv1=(ListView)findViewById(R.id.ptlist);
Calendar dat=Calendar.getInstance();
SimpleDataFormat sdf=新的SimpleDataFormat(“日/月/年”);
字符串formdate=sdf.format(dat.getTime());
datefrom.setText(formdate);
dateto.setText(formdate);
String[]name=db.getName();
adapname=newarrayadapter(producttransition.this,android.R.layout.simple\u list\u item\u 1,name);
actv.setAdapter(adapname);
getbtn.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
试一试{
detailList=新的ArrayList();
cl=db.getProductTransaction(actv.getText().toString(),datefrom.getText().toString(),dateto.getText().toString());
cl.moveToFirst();
//做
对于(int i=0;i您希望从哪里接收来自sqllite或mysql的数据
如果是mysql,则使用php检索数据并以json格式回送(谷歌搜索)
然后使用JSON解析android应用程序中的值
然后使用listview显示,我建议您使用ORM库,因为您正在处理许多表。这将简化您的查询和填充工作
要了解ORM是什么,请访问
下载android的ORM库
ORM库教程
发布您的代码和日志这篇文章非常清楚如何使用数据库:@mmlooloo我不允许上传没有足够数据的图像bcspoints@Distwo我已经看过了教程,但是没有帮助。我不想让你上传图片,我想发布你的代码。就像你键入的一样,你可以复制并粘贴你的code并使用
{}符号使其更美观,还可以保存日志并粘贴;-)sqllite我错误地编写了mysql