java - 有没有更系统的方法来填充我的布局?

标签 java android android-layout android-listview

我正在研究如下所示的布局。

enter image description here

到目前为止,我已经成功地在 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/

相关文章:

java - App Engine 多个 "Committed before 500 null"错误图像

Android MVP-Architecture 如何使用SQLiteHelper在模型中进行数据库调用

android - python 和 (android) adb shell

android - MediaRecorder 不录制视频只录制音频

java - 解析 JSON 时出错

java - @Order 与 @Bean 注释的方法行为

java - 如何使用 Java 访问 Kinect?

java - Spring不调用setter

android - 为什么即使 ListView 有项目,布局文件中的空 View 也会显示在屏幕上?

Android FrameLayout 不会被 Fragments 取代