首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android中将游标检索到的数据设置为文本视图

如何在Android中将游标检索到的数据设置为文本视图
EN

Stack Overflow用户
提问于 2014-08-21 05:35:46
回答 3查看 1.1K关注 0票数 0

我使用下面提供的查询从DB检索了一些值。

代码语言:javascript
复制
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;
}

在主要活动中,我想以报告的形式展示这些结果。活动代码如下所示。

代码语言:javascript
复制
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));
} 

在日志里,一切都显示出来了。但在文本视图中,只有最后一个值显示..。我的代码有什么问题??

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-21 05:42:08

您总是将文本视图内容替换为最后一个字符串。如果要添加所有字符串并在一个文本视图中显示它们,则必须考虑textview的旧值。

在这种情况下,您需要这样做:

代码语言:javascript
复制
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指出的那样,您也可以使用追加:

代码语言:javascript
复制
String tempstr = "  ";
tempstr = "  " + tempstr + "\t" + cur.getString(0) + "\t\t\t"
               + cur.getString(1) + "\t\t\t" + cur.getString(2);
credView.append(tempstr);
票数 0
EN

Stack Overflow用户

发布于 2014-08-21 05:44:20

这是因为您将再次替换textView中的文本直到最后一次。试试这个:

代码语言:javascript
复制
   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));
    } 
票数 0
EN

Stack Overflow用户

发布于 2014-08-21 05:55:42

不适用于settext。您将不得不使用\u0009代替。通过this

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25418897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档