如何在线性布局中获取textViews的文本? 我基本上将代码置于onSavedInstance下,在屏幕方向发生变化的情况下,我将在linearLayout中显示textViews。
我修改了以下代码
for (int i = 0; i < ll1.getChildCount(); i++) {
}
作为
for (int i = 0; i < ll1.getChildCount(); i++) {
TextView children = (TextView) ll1.getChildAt(i);
String b1 = (String) children.getText().toString();
}
我已尝试过上述代码,但未找到任何成功。
答案 0 :(得分:1)
试试这个:
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;
}
如果您的线性布局仅包含textviews,则可能会有效。否则,您必须提供所有文本视图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());
希望它有所帮助。
答案 1 :(得分:0)
您可以使用droidQuery:
$ 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
答案 2 :(得分:0)
<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("!##!");