我试图创建一个应用程序,其中有一个ScrollView占用屏幕的一部分,我在其中添加了一个linearlayout,但我需要动态添加视图行(textView, 2个editText视图,每行都有一个复选框),并且能够从那些要放入数据库的数据中提取数据。
我对Android开发很陌生,所以我真的不确定如何做到这一点,任何帮助都会受到赞赏。
答案 0 :(得分:2)
创建此布局xml(按照您想要的方式排列)说item_layout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/textView2" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText2" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New CheckBox"
android:id="@+id/checkBox" />
</LinearLayout>
添加观看次数
LayoutInflater inflater = (LayoutInflater)context.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout scrollViewLinearlayout = (LinearLayout)findViewById(R.id.scroll_view_linear_layout); // The layout inside scroll view
for(int i = 0; i < count; i++){
LinearLayout layout2 = new LinearLayout(context);
layout2.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
View item = inflater.inflate(R.layout.item_layout, null, false);
layout2.setId(i);
layout2.addView(item);
scrollViewLinearlayout.addView(layout2);
}
从视图中获取值
for(int i = 0; i < count; i++){
LinearLayout itemLl = (LinearLayout)scrollViewLinearlayout.findViewById(i);
EditText et1 = (EditText)itemLl.findViewById(R.id.editText);
String et1Str = et1.getText().toString();
// Similarly get other values and add them in the database
}
答案 1 :(得分:-2)
使用ListView而不是ScrollView,并动态添加/删除元素。
了解ListView后,您会发现如何轻松完成此任务:
https://github.com/codepath/android_guides/wiki/Using-an-ArrayAdapter-with-ListView