Java 如何只显示一次数据库中的特定数据?
如何让变量Java 如何只显示一次数据库中的特定数据?,java,android,sql,database,Java,Android,Sql,Database,如何让变量text1、text2和time在开始时只显示一次,就像标题一样,因为它们对于特定的数据组具有相同的值,然后在下面显示变量text3的时间与该变量对于特定的数据组具有相同的值的时间相同 当text3完成数据写入后,对于该组数据,query必须开始为下面的text1、text2和time以及text3的新值写入另一组数据 这是我的代码: public class NapredakActivity extends Activity { @Override public void
text1
、text2
和time
在开始时只显示一次,就像标题一样,因为它们对于特定的数据组具有相同的值,然后在下面显示变量text3
的时间与该变量对于特定的数据组具有相同的值的时间相同
当text3
完成数据写入后,对于该组数据,query必须开始为下面的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();
} } }
公共类NapredakaActivity扩展活动{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.first);
字符串变量;
最终文本视图t=(文本视图)findViewById(R.id.textView2);
Intent=getIntent();
var=意图。getStringExtra(“日期”);
SQLiteDatabase db=openOrCreateDatabase(“数据库”,MODE_PRIVATE,null);
String q=“从表中选择text1、text2、text3、time,其中的time类似于“+var+”;
游标c=db.rawQuery(q,null);
if(c.getCount()<1){
c、 close();
db.close();
Toast.makeText(NapredakActivity.this,“错误选择”,Toast.LENGTH_LONG.show();
startActivity(新意图(这个,calendar.class));
}
否则{
字符串j=“”;
c、 moveToFirst();
做{
字符串cm=c.getString(c.getColumnIndex(“text1”);
字符串cm2=c.getString(c.getColumnIndex(“text2”);
字符串cm4=c.getString(c.getColumnIndex(“text3”);
字符串cm3=c.getString(c.getColumnIndex(“时间”);
j=j+“\n”+cm+cm4+cm2+cm3;
}而(c.moveToNext());
t、 setText(j);
c、 close();
db.close();
} } }
如果我正确理解您的意思,假设您喜欢保持显示db内容的方式,即在一个文本视图中,只需使用如下标志:
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);
谢谢你的帮助,但是当我应用这段代码时,什么也没发生。输出是相同的。你说的“永远不会出现在BD中的文本”是什么意思。这意味着什么?