【问题标题】:Android TextView to add text through loopAndroid TextView 通过循环添加文本
【发布时间】:2014-01-08 06:01:52
【问题描述】:

我在文本视图中显示值时遇到问题。它仅显示文本视图中的最后一个值。我想迭代新行中的每个值。

这是我的代码。

PreviewCatNameTxt = new TextView[obdatin.catCount];
        PreviewNameTxt = new TextView[10];
        PreviewQtyTxt = new TextView[10];
        PreviewAmtTxt = new TextView[10];
        System.out.println("setview3");
        for(int i=0;i<obdatin.catCount;i++){ 
            System.out.println("num oof prca"+obdatin.catList[i].getNumCategory());
            if(obdatin.catList[i].isTotQtyNonZero(0)){
                PreviewCatNameTxt[i] = (TextView) findViewById(R.id.textViewh);

                PreviewCatNameTxt[i].setText(obdatin.catList[i].getCategoryName(0));
                System.out.println("prca"+obdatin.catList[i].getCategoryName(0));
            }
            int cnt =obdatin.catList[i].proList.getNumProduct();
        System.out.println("setview3");

        for(int j = 0; j<cnt; j++) {

            if(obdatin.catList[i].proList.isQtyNonZero(j)){

                PreviewNameTxt[j] = (TextView)findViewById(R.id.textView1);
                PreviewNameTxt[j].setText(obdatin.catList[i].proList.getProductName(j));

                PreviewQtyTxt[j] = (TextView)findViewById(R.id.textView2);

                PreviewQtyTxt[j].setText(obdatin.catList[i].proList.getProductQty(j));

                PreviewAmtTxt[j] = (TextView)findViewById(R.id.textView3);
                String amt = obdatin.catList[i].proList.getProductAmt(j);
                PreviewAmtTxt[j].setText(amt);
                System.out.println("prcaN"+obdatin.catList[i].proList.getProductName(j));
                System.out.println("prcaQ"+obdatin.catList[i].proList.getProductQty(j));
                System.out.println("prcaA"+obdatin.catList[i].proList.getProductAmt(j));
             }

        }

【问题讨论】:

  • 请看我的回答。我想你的问题会解决的。如果您还有任何疑问,请询问我。

标签: android textview


【解决方案1】:

根据您的要求编辑代码

PreviewCatNameTxt = (TextView) findViewById(R.id.textViewh);


for(int i=0;i<obdatin.catCount;i++){ 
            System.out.println("num oof prca"+obdatin.catList[i].getNumCategory());
            if(obdatin.catList[i].isTotQtyNonZero(0)){


                PreviewCatNameTxt.append(" "+obdatin.catList[i].getCategoryName(0));
                System.out.println("prca"+obdatin.catList[i].getCategoryName(0));
            }
            int cnt =obdatin.catList[i].proList.getNumProduct();
        System.out.println("setview3");

        for(int j = 0; j<cnt; j++) {

            if(obdatin.catList[i].proList.isQtyNonZero(j)){


                   PreviewCatNameTxt.append("\n"+obdatin.catList[i].proList.getProductName(j));

                PreviewCatNameTxt.append("\n"obdatin.catList[i].proList.getProductQty(j));

                String amt = obdatin.catList[i].proList.getProductAmt(j);
                PreviewCatNameTxt.append("\n"+amt+"\n\n");
                System.out.println("prcaN"+obdatin.catList[i].proList.getProductName(j));
                System.out.println("prcaQ"+obdatin.catList[i].proList.getProductQty(j));
                System.out.println("prcaA"+obdatin.catList[i].proList.getProductAmt(j));
             }

请删除 TextView 数组和所有这些东西。请回复您的反馈。

【讨论】:

  • 这里的 textview 是一个数组,我如何在循环之外声明
  • 好的,所以在里面声明它,但避免 setText 并做附加。我将根据您的需要编辑我的答案
  • 但是如果你在里面声明那么它每次都会创建新的textview,所以以前的id数据会丢失吗?你可以尝试使用我的代码吗?我的代码可行吗?
  • 我想将输出显示为第一行标题下一行 n 行再次标题和下一行 n 行数实际上我在充气机的帮助下使用了表格布局来实现这一点,但我失败了那个..所以我以前选择这种方式你能建议我一些想法吗
  • 好兄弟..我使用了表格布局
【解决方案2】:

我不完全确定您要做什么。为什么要使用 System.out.println

如果我说得对,您希望在每个 for 循环之后将更大的文本放入 TextView 中,并用换行符分隔。一种方法是在每次迭代中填充一个字符串,并在每次迭代之后和设置文本之后添加一个换行符。

所以,你可以有这样的东西:

String catList="";
for(int i=0;i<obdatin.catCount;i++){
        if(obdatin.catList[i].isTotQtyNonZero(0)){
        catList = catList + obdatin.catList[i].getCategoryName(0) + "\n";
        }
int cnt =obdatin.catList[i].proList.getNumProduct();

PreviewCatNameTxt[i] = (TextView) findViewById(R.id.textViewh);
PreviewCatNameTxt[i].setText(catList);

另外,如果你想记录一些东西,你应该使用 LogCat。您可以在 LogCat herehere 中阅读有关阅读和写作的信息。 祝你好运!

【讨论】:

  • 我想将输出显示为第一行标题下一行 n 行再次标题和下一行 n 行数实际上我使用表格布局来实现这一点,但我在那个中失败了..所以我以前选择这种方式,你能建议我一些想法吗
【解决方案3】:
PreviewNameTxt[j] = (TextView)findViewById(R.id.textView1);
PreviewQtyTxt[j] = (TextView)findViewById(R.id.textView2);
PreviewAmtTxt[j] = (TextView)findViewById(R.id.textView3);
String cat="",obtaincat="",amt="";

for(int j = 0; j<cnt; j++) {

            if(obdatin.catList[i].proList.isQtyNonZero(j)){

                cat = cat + obdatin.catList[i].getCategoryName(j) + "\n";
                obtaincat=btaincat+obdatin.catList[i].proList.getProductQty(j)+"\n";
               amt =amt+ obdatin.catList[i].proList.getProductAmt(j)+"\n";
             }
}
PreviewNameTxt[j].setText(cat);
PreviewQtyTxt[j].setText(obtaincat);
PreviewAmtTxt[j].setText(amt);

【讨论】:

  • 不要使用 System.out.println();,检查输出使用 toast
【解决方案4】:

更改为 Logcat :

Log.w("","prcaN"+obdatin.catList[i].proList.getProductName(j));
Log.w("","prcaQ"+obdatin.catList[i].proList.getProductQty(j));
Log.w("","prcaA"+obdatin.catList[i].proList.getProductAmt(j));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多