我正在研究如下所示的布局。
到目前为止,我已经成功地在 xml 中手动定义每个 View (ScrollView 中的相对布局)并在 java 中手动填充每个微调器。但这很乏味。我希望我能以某种方式使用“我有这个项目数组。对于每个项目,我希望屏幕上有一行带有旋转器和 EditText。”然后我必须能够获取用户输入并将其放入数据库中。最终,我希望能够返回并编辑此屏幕,这意味着我必须从数据库查询中重新填充这些字段。
我尝试使用 ListView 进行一些操作,但在填充多行时遇到了麻烦,然后读到RelativeLayout 应该表现得更好。你有什么建议?如果我必须手动声明 xml 和 java 中的每个字段,那就这样吧。
这就是我的 XML 的样子...
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="180dp" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="match_parent" >
<Spinner
android:id="@+id/category_spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
/>
<EditText
android:id="@+id/editWeight1"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/percentSign1"
android:layout_alignBaseline="@id/category_spinner1"
android:inputType="numberDecimal" >
</EditText>
<TextView
android:id="@id/percentSign1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignBaseline="@id/category_spinner1"
android:text="@string/percentSign"
android:textSize="20sp" >
</TextView>
<Spinner
android:id="@+id/category_spinner2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@id/category_spinner1"
/>
<EditText
android:id="@+id/editWeight2"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/percentSign2"
android:layout_alignBaseline="@id/category_spinner2"
android:inputType="numberDecimal" >
</EditText>
<TextView
android:id="@id/percentSign2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignBaseline="@id/category_spinner2"
android:text="@string/percentSign"
android:textSize="20sp" >
</TextView>
...
还有我的 Java...
Spinner catSpin1 = (Spinner) rootView.findViewById(R.id.category_spinner1);
ArrayAdapter<String> catSpinAdapter1 = new ArrayAdapter<String>(this.getActivity(),android.R.layout.simple_spinner_item, DBAdapter.gradeTypes);
catSpinAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
catSpin1.setAdapter(catSpinAdapter1);
catSpin1.setSelection(0);
Spinner catSpin2 = (Spinner) rootView.findViewById(R.id.category_spinner2);
ArrayAdapter<String> catSpinAdapter2 = new ArrayAdapter<String>(this.getActivity(),android.R.layout.simple_spinner_item, DBAdapter.gradeTypes);
catSpinAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
catSpin2.setAdapter(catSpinAdapter2);
catSpin2.setSelection(1);
Spinner catSpin3 = (Spinner) rootView.findViewById(R.id.category_spinner3);
ArrayAdapter<String> catSpinAdapter3 = new ArrayAdapter<String>(this.getActivity(),android.R.layout.simple_spinner_item, DBAdapter.gradeTypes);
catSpinAdapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
catSpin3.setAdapter(catSpinAdapter3);
catSpin3.setSelection(2);
...
最佳答案
当然,创建一个String数组,例如:
<string-array name="my_array">
<item>One</item>
<item>Two</item>
</string-array>
然后将其添加到 xml 上的微调器中:
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:entries="@array/my_array"/>
关于java - 有没有更系统的方法来填充我的布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22945621/