Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在线性布局中获取动态生成的文本视图的文本并将其存储在字符串数组中_Android_Android Linearlayout_Textview - Fatal编程技术网

Android 在线性布局中获取动态生成的文本视图的文本并将其存储在字符串数组中

Android 在线性布局中获取动态生成的文本视图的文本并将其存储在字符串数组中,android,android-linearlayout,textview,Android,Android Linearlayout,Textview,如何在线性布局中获取文本视图的文本? 基本上,我将把代码置于onSavedInstance下,在屏幕方向发生变化的情况下,我将在linearLayout中显示文本视图 我已经修改了下面的代码 for (int i = 0; i < ll1.getChildCount(); i++) { } for(int i=0;i

如何在线性布局中获取文本视图的文本? 基本上,我将把代码置于onSavedInstance下,在屏幕方向发生变化的情况下,我将在linearLayout中显示文本视图

我已经修改了下面的代码

for (int i = 0; i < ll1.getChildCount(); i++) {


    }
for(int i=0;i
作为

for(int i=0;i
我已尝试了上述代码,但未找到任何成功的代码。

请尝试以下操作:

String[] bArray = new String[ll1.getChildCount()];

for (int i = 0; i < ll1.getChildCount(); i++) {
    TextView children = (TextView) ll1.getChildAt(i);
    String b = children.getText().toString();
    bArray[i] = b;
}
String[]bArray=新字符串[ll1.getChildCount()];
for(int i=0;i
如果您的线性布局仅包含文本视图,这可能会起作用。否则,您必须提供所有文本视图id,如txtView1、txtView2等,并使用id获取它

编辑:

要将所有子项返回到单个字符串中,请尝试以下操作:

StringBuilder sb = new StringBuilder(ll1.getChildCount());
for (int i = 0; i < ll1.getChildCount(); i++) {
    TextView children = (TextView) ll1.getChildAt(i);
    sb.append(children.getText().toString()+" ");
}
System.out.println(sb.toString());
StringBuilder sb=新的StringBuilder(ll1.getChildCount());
for(int i=0;i
希望有帮助。

您可以使用:

$ d = $.with(lll).selectByType("android.widget.TextView");
String[] array = new String[d.size()];
int index = 0;
d.each(new Function() {
    public void invoke($ droidquery, Object... params){
        array[index] = droidquery.val().toString();
        index++;
});
//now use you array variable

你可以用这样的东西。在布局xml文件中,将标记设置为txtview,如下所示

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:tag="txtview"
    android:text="@string/hello_world" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:tag="txtview"
    android:text="TextView" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:tag="txtview"
    android:text="TextView" />

<TextView
    android:id="@+id/textView4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:tag="txtview"
    android:text="TextView" />


并在您的活动中使用以下代码

    LinearLayout ll1 = (LinearLayout) findViewById(your layout id);

    String[] bArray;
    StringBuilder stringBuilder = new StringBuilder();
    for (int i = 0; i < ll1.getChildCount(); i++) {
        if (ll1.getChildAt(i).getTag().equals("txtview")) {
            TextView children = (TextView) ll1.getChildAt(i);
            stringBuilder.append(children.getText().toString() + "!##!");
        }
    }
    bArray = stringBuilder.toString().split("!##!");
LinearLayout ll1=(LinearLayout)findViewById(您的布局id);
弦[]弹幕;
StringBuilder StringBuilder=新的StringBuilder();
for(int i=0;i
您是否收到任何错误?这段代码怎么办?不,模拟器在屏幕旋转时退出应用程序。我不熟悉droidQuery。无论如何,我会尝试你的解决方案。这就是我需要的。当屏幕方向改变时,有没有其他有效的方法来检索动态生成的文本视图的值?@Madhan我不知道。对不起:/你能用这个代码把所有的孩子放到一个字符串中吗?@ViolinNz是的,你能。检查编辑后的答案。很抱歉反应太晚。我在休假:)我使用动态生成的textview。在创建textview时,添加用于设置标记的代码,如:children.setTag(“您的标记,如txtview”);其中childeren是textview
    LinearLayout ll1 = (LinearLayout) findViewById(your layout id);

    String[] bArray;
    StringBuilder stringBuilder = new StringBuilder();
    for (int i = 0; i < ll1.getChildCount(); i++) {
        if (ll1.getChildAt(i).getTag().equals("txtview")) {
            TextView children = (TextView) ll1.getChildAt(i);
            stringBuilder.append(children.getText().toString() + "!##!");
        }
    }
    bArray = stringBuilder.toString().split("!##!");