【问题标题】:how to get text of the textview in the dynamically generated table?如何在动态生成的表格中获取文本视图的文本?
【发布时间】:2011-07-29 01:52:07
【问题描述】:

我已经写了这样的东西......

TableRow  tr1;  
    TableRow  tr2;  
    TextView txt9;
    ...
    TableLayout tl = (TableLayout)findViewById(R.id.myTableLayout);
    Display display = getWindowManager().getDefaultDisplay(); 
    int width = display.getWidth();

    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width, LayoutParams.FILL_PARENT);

    for (int i = 0; i < strarr.length-1; i++)
    {
    strinarr = fun1.split(strarr[i].trim(),"^");
    tr1 = (TableRow) new TableRow(this);
    txt1=new TextView(this);
    txt9.setText(strinarr[0]);
    txt9.setBackgroundColor(intblue);
    txt9.setTextColor(intwhite);
    txt9.setClickable(true);
    txt9.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v) 
    {
        Log.i("pagename",strpagename);
        String currenttext = txt9.getText().toString());
    }
    }
    });
    tr1.addView(txt9);
    tl.addView(tr1,new TableLayout.LayoutParams(layoutParams));
    }

我能够在点击时获得文本,但愚蠢的是我在所有 textview 点击事件的表格中获得最后一个 textview 的文本......如果有人能告诉我如何在焦点或触摸上捕捉 textview 的文本这真的很有帮助......

【问题讨论】:

    标签: java android textview tablelayout tablerow


    【解决方案1】:

    String currenttext = txt9.getText().toString()); 更改为String currenttext = ((TextView)v).getText().toString());

    【讨论】:

      【解决方案2】:

      您可能应该在表格中维护一个 ID 列表和相应文本的列表。当用户单击具有给定 ID 的小部件时,只需在文本列表中查找文本并进行设置。

      【讨论】:

      • 我也可以将所有信息存储在向量中...为此我需要一些用户选择的文本...如果您可以建议一些东西让文本在触摸或其他东西上...它将是真的很有帮助...
      【解决方案3】:
      ArrayList qty = new ArrayList();
      for(int i = 1; i <= 10; i++)
      {
        qty.add(i);
      }
      
      for(int i = 0; i < 5; i++)
      {
        TableRow tr = new TableRow(this);
        Spinner tvQtySpinner = new Spinner(this);
        tvQtySpinner.setOnItemSelectedListener(this);
        ArrayAdapter<String> aa =
          new ArrayAdapter<String> this, android.R.layout.simple_spinner_item, qty);
        aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        tvQtySpinner.setAdapter(aa);
        tr.addView(tvQtySpinner);
      
        TextView tvRate = new TextView(this);
        tvRate.setText(value.getPrice().toString());
        tvRate.setTextColor(Color.YELLOW);
        tr.addView(tvRate);
      }
      
      public void onItemSelected(AdapterView<?> parent, View view, int pos,long id)
      {       
        Integer value = (Integer) parent.getItemAtPosition(pos);
        Float result = value*50;
        tvRate.setText(String.valueOf(result));
      }
      

      这里有 5 行,每行有 5 个动态微调器和文本视图。我从微调器中获取选定的值并进行计算,并尝试在特定行 TextView 中设置计算结果。但是当我在 TextView 中设置计算值时,它将在最后一行 TextView 上设置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-20
        • 1970-01-01
        相关资源
        最近更新 更多