![](/img/trans.png)
[英]How To Show specific Data From SQLite Database In Android ListView
[英]How to show specific data from database only once?
如何使变量text1
, text2
和time
在开始时仅显示一次,例如title ,因为它们对特定数据组具有相同的值,然后在下面显示变量text3
时间与该变量具有该特定值的时间一样多一组数据。
当text3
完成写入数据后,对于该组数据,查询必须开始为text1
, text2
和time
以及下面的text3
新值写入另一组数据。
这是我的代码:
public class NapredakActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first);
String var;
final TextView t = (TextView) findViewById(R.id.textView2);
Intent intent = getIntent();
var=intent.getStringExtra("date");
SQLiteDatabase db = openOrCreateDatabase("Database", MODE_PRIVATE, null);
String q = "SELECT text1 ,text2, text3, time FROM table WHERE time LIKE '"+var+"'";
Cursor c = db.rawQuery(q, null);
if( c.getCount() < 1 ){
c.close();
db.close();
Toast.makeText(NapredakActivity.this, "wrong choice",Toast.LENGTH_LONG).show();
startActivity(new Intent(this,calendar.class));
}
else{
String j="";
c.moveToFirst();
do {
String cm = c.getString(c.getColumnIndex("text1" ));
String cm2 = c.getString(c.getColumnIndex("text2"));
String cm4 = c.getString(c.getColumnIndex("text3"));
String cm3 = c.getString(c.getColumnIndex("time" ));
j = j+"\n"+cm+cm4+cm2+cm3;
} while (c.moveToNext());
t.setText(j);
c.close();
db.close();
} } }
如果我正确理解您的假设并假设您希望保持显示db内容的方式,即在一个TextView中,只需使用如下标记:
else{
String cmOld ="a text that never will be in the BD";
boolean flag_newText1Found;
String j="";
c.moveToFirst();
do {
String cm = c.getString(c.getColumnIndex("text1" ));
if (cm.equals(cmOld))
cm = "";
else
cmOld = cm;
String cm2 = c.getString(c.getColumnIndex("text2"));
String cm4 = c.getString(c.getColumnIndex("text3"));
String cm3 = c.getString(c.getColumnIndex("time" ));
j = j+"\n"+cm+cm4+cm2+cm3;
} while (c.moveToNext());
t.setText(j);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.