我使用下面提供的查询从DB检索了一些值。
public Cursor getcredittranscation(String date)
{
String sql="SELECT A.Acc_No,A.Cust_Name, T.Trans_Amnt FROM TransactionTable "
+ "T LEFT JOIN AccMaster A on A.Acc_ID = T.Acc_ID "
+ "WHERE T.Trans_Date =? AND T.Trans_Type=? ORDER BY T.Entry_Time asc";
Cursor cursor = db.rawQuery(sql, new String[]{date, "credit"});
return cursor;
}在主要活动中,我想以报告的形式展示这些结果。活动代码如下所示。
try {
db.open();
Cursor cur = db.getcredittranscation(temp);
if(cur.moveToFirst()){
do{
DisplayCreditdetails(cur);
}while(cur.moveToNext());
}
db.close();
} catch (Exception e) {
// TODO: handle exception
Log.e("Retrive Credit Error ", " "+e.getMessage());
}
private void DisplayCreditdetails(Cursor cur)
{
String tempstr = " ";
tempstr =" "+tempstr +"\t"+ cur.getString(0) + "\t\t\t"
+ cur.getString(1) + "\t\t\t" + cur.getString(2);
credView.setText(tempstr);
Log.e("Credit", "Acc No :"+cur.getString(0) +"Name :"+cur.getString(1)+ "Trans Amnt :"+cur.getString(2));
} 在日志里,一切都显示出来了。但在文本视图中,只有最后一个值显示..。我的代码有什么问题??
发布于 2014-08-21 05:42:08
您总是将文本视图内容替换为最后一个字符串。如果要添加所有字符串并在一个文本视图中显示它们,则必须考虑textview的旧值。
在这种情况下,您需要这样做:
String tempstr = credView.getText().toString() + " ";
tempstr = " " + tempstr + "\t" + cur.getString(0) + "\t\t\t"
+ cur.getString(1) + "\t\t\t" + cur.getString(2);
credView.setText(tempstr);正如shayan pourvatan指出的那样,您也可以使用追加:
String tempstr = " ";
tempstr = " " + tempstr + "\t" + cur.getString(0) + "\t\t\t"
+ cur.getString(1) + "\t\t\t" + cur.getString(2);
credView.append(tempstr);发布于 2014-08-21 05:44:20
这是因为您将再次替换textView中的文本直到最后一次。试试这个:
String newtempstr = " ";
private void DisplayCreditdetails(Cursor cur) {
String tempstr = " ";
tempstr =" "+tempstr +"\t"+ cur.getString(0) + "\t\t\t"
+ cur.getString(1) + "\t\t\t" + cur.getString(2);
newtempstr = newtempstr+"."+newtempstr;
credView.setText(newtempstr);
Log.e("Credit", "Acc No :"+cur.getString(0) +"Name :"+cur.getString(1)+ "Trans Amnt :"+cur.getString(2));
} 发布于 2014-08-21 05:55:42
不适用于settext。您将不得不使用\u0009代替。通过this
https://stackoverflow.com/questions/25418897
复制相似问题