【问题标题】:How to get text from dynamically created TextView in android?如何从android中动态创建的TextView获取文本?
【发布时间】:2017-06-09 06:08:59
【问题描述】:
private void textview(String question) {
    TextView clientAddress = new TextView(this);
    clientName.setGravity(1);
    clientAddress.setTypeface(Typeface.defaultFromStyle(1));
    clientAddress.setText(question);
    clientAddress.setLayoutParams(lparams);
    linearLayout.addView(clientAddress);
    clientAddress.setTextSize(20);
    clientAddress.setTextColor(getResources().getColor(R.color.white));
    clientAddress.setPadding(7, 10, 0, 10);
}

我正在调用这个函数来动态创建 6 个 TextView。但我很困惑,如何从这些 TextViews 中获取文本。谁能建议我解决方案?

【问题讨论】:

  • 所以您想获取TextView 的文本?吸气剂有什么问题?
  • 我是android新手,你能描述一下吗?
  • 只要使用clientAddress.getText()
  • 亲爱的,我的 6 个文本视图正在获取相同的对象名称,即 clientAddress 。那么我怎样才能从这一行获取文本呢?
  • 您能在将这个文本视图添加到原始视图 View.addView() 方法的位置显示更多代码

标签: android textview


【解决方案1】:

您可以使用 gettext() 方法从文本视图中获取文本。如果要将获取的文本转换为字符串,则可以使用 tostring() 。

String fetchedtext = clientAddress.getText().toString();

【讨论】:

  • 我的 6 个文本视图正在获取相同的对象名称,即 clientAddress 。那么如何从这一行获取文本呢?
  • 请不要发布裸代码还包括对代码在做什么的解释。
【解决方案2】:

做这样的事情

private void textview(int position, String question) {
        TextView clientAddress = new TextView(this);
        clientName.setGravity(1);
        clientAddress.setTypeface(Typeface.defaultFromStyle(1));
        clientAddress.setText(question);
        clientAddress.setTag(position);
        clientAddress.setLayoutParams(lparams);
        linearLayout.addView(clientAddress);
        clientAddress.setTextSize(20);
        clientAddress.setTextColor(getResources().getColor(R.color.white));
        clientAddress.setPadding(7, 10, 0, 10);
    }

  public String getTextFromTextView(int positionOfTextView , LinearLayout mLinearLayout){
    String result = "";
    for (int i = 0; i <((ViewGroup)mLinearLayout).getChildCount() ; i++) {
        if(((ViewGroup) mLinearLayout).getChildAt(i)!=null ){
            View mView =((ViewGroup) mLinearLayout).getChildAt(i);
            if(mView instanceof  TextView){
                TextView mTextView = (TextView)mView;
                if(mTextView!=null && mTextView.getTag()!=null && positionOfTextView==(int) mTextView.getTag() ){
                    result =mTextView.getText().toString();
                }
            }else {
                TextView mTextView =  (TextView) mView.findViewWithTag(positionOfTextView);
                if(mTextView!=null){
                    result =mTextView.getText().toString();
                }
            }
        }
    }
    return result;
}

【讨论】:

    【解决方案3】:

    您必须为每个TextView 创建一个不同的对象。使用这些对象后,您可以获得TextView 的值。使用TextViewgetText() 属性。

    您还可以创建TextView 的数组。

    【讨论】:

      猜你喜欢
      • 2017-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      相关资源
      最近更新 更多