Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将数据显示到listview中_Android_Sqlite_Listview - Fatal编程技术网

Android 将数据显示到listview中

Android 将数据显示到listview中,android,sqlite,listview,Android,Sqlite,Listview,下面的代码在listview上显示来自sqlite数据库的信息。首先,它显示日期,listview允许我单击,当我单击日期时,它会在listview上显示在该日期完成的信息。我的问题是,当我在2013年1月12日保存数据时,我稍后重复相同的日期,然后它会显示相同的日期两次,我希望它只显示一个日期,当我单击它以显示我在上午保存的数据和我在同一天稍后保存的数据时,不是两个相似的日期 这是密码 public class Pro extends Activity implements OnItemCli

下面的代码在listview上显示来自sqlite数据库的信息。首先,它显示日期,listview允许我单击,当我单击日期时,它会在listview上显示在该日期完成的信息。我的问题是,当我在2013年1月12日保存数据时,我稍后重复相同的日期,然后它会显示相同的日期两次,我希望它只显示一个日期,当我单击它以显示我在上午保存的数据和我在同一天稍后保存的数据时,不是两个相似的日期

这是密码

public class Pro extends Activity implements OnItemClickListener {

    private ListView uNamesListView;

        private ListAdapter customerListAdapter;
        private ArrayList<PojoClass> pojoArrayList;

    final Context context = this;
    private Button button;
    private TextView result;
    DBAdapter db = new DBAdapter(this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        uNamesListView = (ListView) findViewById(R.id.listView1);
        uNamesListView.setOnItemClickListener(this);

        pojoArrayList = new ArrayList<PojoClass>();
        customerListAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, populateList());
        uNamesListView.setAdapter(customerListAdapter);                 


    }

           public List<String> populateList() {


                List<String> uGraduateNamesList = new ArrayList<String>();
                DatabaseHelper openHelperClass = new DatabaseHelper(this);
                SQLiteDatabase sqliteDatabase = openHelperClass.getReadableDatabase();
                Cursor cursor = sqliteDatabase.query(DBAdapter.SCAN_TABLE, null, null, null, null, null, null);
                startManagingCursor(cursor);
                while (cursor.moveToNext()) {

                    String cDate = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_Date ));
                    String cMeterNumber = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_MeterNumber ));
                    String cVname = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_Vname ));
                    String cPname = cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_PName ));

                    PojoClass ss = new PojoClass();
                    ss.SetName(cDate);
                    ss.SetSurname(cMeterNumber);
                    ss.SetID(cVname);
                    ss.SetHaddress(cPname);
                pojoArrayList.add(ss);

                    uGraduateNamesList.add(cDate);
                }
                sqliteDatabase.close();

                return uGraduateNamesList;

    }

    @Override
    public void onItemClick(AdapterView<?> aa, View view, int ss, long bb) {
        // TODO Auto-generated method stub
        Intent updateCustomerIntent = new Intent(Pro.this, ViewByVendor.class);

        updateCustomerIntent.putExtra("product", product);
        startActivity(updateCustomerIntent);

        Toast.makeText(getApplicationContext(), "Clicked on :" + ss, Toast.LENGTH_SHORT).show();
        PojoClass clickedObject =  pojoArrayList.get(ss);

        Bundle dataBundle = new Bundle();

        dataBundle.putString("clickedDate", clickedObject.getDates());
        dataBundle.putString("clickedMeterNumber", clickedObject.getMeterNumber());
        dataBundle.putString("clickedVname", clickedObject.getVname());
        dataBundle.putString("clickedPname", clickedObject.getPname());
        updateCustomerIntent.putExtras(dataBundle);
        startActivity(updateCustomerIntent);


    }


}
public class Pro扩展活动实现了mclicklinklistener{
私有ListView uNamesListView;
专用ListAdapter customerListAdapter;
私人ArrayList pojoArrayList;
最终上下文=此;
私人按钮;
私有文本视图结果;
DBAdapter db=新的DBAdapter(此);
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
uNamesListView=(ListView)findViewById(R.id.listView1);
setOnItemClickListener(此);
pojoArrayList=新的ArrayList();
customerListAdapter=new ArrayAdapter(这是android.R.layout.simple_list_item_1,populateList());
setAdapter(customerListAdapter);
}
公共列表populateList(){
List UGRADUDEATENAMESLIST=新建ArrayList();
DatabaseHelper openHelperClass=新的DatabaseHelper(此);
SQLiteDatabase SQLiteDatabase=openHelperClass.getReadableDatabase();
Cursor Cursor=sqliteDatabase.query(DBAdapter.SCAN_TABLE,null,null,null,null);
开始管理游标(游标);
while(cursor.moveToNext()){
字符串cDate=cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_Date));
字符串cMeterNumber=cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_MeterNumber));
String cVname=cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_Vname));
String cPname=cursor.getString(cursor.getColumnIndex(DBAdapter.COLUMN_PName));
PojoClass ss=新PojoClass();
ss.SetName(cDate);
ss.SetSurname(cMeterNumber);
ss.SetID(cVname);
ss.SetHaddress(cPname);
pojoArrayList.add(ss);
添加(cDate);
}
sqliteDatabase.close();
返回UGR名称列表;
}
@凌驾
公共虚线单击(适配器视图aa、视图视图、内部ss、长bb){
//TODO自动生成的方法存根
Intent updateCustomerIntent=新Intent(Pro.this,ViewByVendor.class);
updateCustomerIntent.putExtra(“产品”,产品);
startActivity(updateCustomerIntent);
Toast.makeText(getApplicationContext(),“单击:”+ss,Toast.LENGTH\u SHORT.show();
PojoClass clickedObject=pojoArrayList.get(ss);
Bundle-dataBundle=新Bundle();
putString(“clickedDate”,clickedObject.getDates());
putString(“clickedMeterNumber”,clickedObject.getMeterNumber());
putString(“clickedVname”,clickedObject.getVname());
putString(“clickedPname”,clickedObject.getPname());
updateCustomerIntent.PUTETRAS(数据绑定);
startActivity(updateCustomerIntent);
}
}

非常感谢您的帮助。

在阅读列表视图的日期时,您只需要唯一的日期。 在SQL中,这可以通过
DISTINCT
groupby
实现:

SELECT DISTINCT Date FROM ScanTable
SELECT Date FROM ScanTable GROUP BY Date
Android代码如下所示:

cursor=db.query(true//
SELECT * FROM ScanTable WHERE Date = ?