0

我正在尝试制作一个带有 2 个微调器和 2 个按钮的自定义对话框。我正在做以下编码

这是对话框内自定义 GUI 的 xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="SORT BY" />

<Spinner
    android:id="@+id/spinner1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:prompt="@string/prompt1"
    android:entries="@array/ordersortby"
    android:layout_gravity="center"/>

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

<Spinner
    android:id="@+id/spinner2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
     android:prompt="@string/address"
     android:entries="@array/ordersortby1"


    />


<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="OK" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Cancel"
     />

在字符串中我声明如下

 <string name="prompt1">Order Number</string>

 <string-array name="ordersortby">
    <item>Order Number</item>
    <item>Date Submitted</item>
    <item>Date Entered</item>
</string-array>
<string-array name="ordersortby1">
    <item>ASC</item>
    <item>DESC</item>
</string-array>

在活动中我正在做以下事情

final Dialog dialog = new Dialog(orders.this);
            dialog.setContentView(R.layout.orderpicker);
            dialog.setTitle("Sort By Dialog");
            dialog.show();

运行这个时,我得到这个 微调器

我的问题是为什么我没有在这些选择器中获取任何数据。请帮我。

4

4 回答 4

0

先看风景。

LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.yourlayout, null); 

现在用它view来声明你的微调器。

Spinner spinner = (Spinner) view.findViewById(R.id.spinner);

这将解决您的问题。

于 2012-12-28T11:58:51.343 回答
0

之前使用下面的代码dialog.show();并将您的字符串数组定义为 string.xml 文件,它将解决您的问题。

Spinner mSpinner1 = (Spinner)dialog.findViewById(R.id.spinner_ordersortby);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.string.ordersortby, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner1.setAdapter(adapter);
于 2012-12-28T11:50:40.380 回答
0

让我们使用下面的代码,

 spinner_ordersortby = (Spinner)findViewById(R.id.spinner_ordersortby);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.ordersortby, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner_language.setAdapter(adapter);

另一件事是确保你的数组应该在这个目录中

/res/values/arrays.xml
于 2012-12-28T11:46:35.977 回答
0

在你的代码中尝试这样的事情

LayoutInflater factory = LayoutInflater.from(this);
View myview = factory.inflate(R.layout.orderpicker, null); 
Dialog dialog = new Dialog(orders.this);
        dialog.setContentView(myview);
        dialog.setTitle("Sort By Dialog");
        dialog.show();
于 2012-12-28T11:52:54.200 回答