当我在android中点击它时,如何在Button下面显示SpinnerList

时间:2016-03-17 11:01:18

标签: android android-spinner

嗨我是我的应用程序中的新手我创建了一个按钮和一个textview

当我们点击我的按钮时,我想显示微调列表,当我们选择任何一行时,我想在我的textview中显示该数据

为此我写了下面的代码,但当我们点击按钮微调器不显示按钮

下面

它显示的像我的下图,我想在我的按钮下方显示该列表,请帮助我

的xml: -

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

    <LinearLayout
        android:id="@+id/mainlayout"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:paddingTop="15dp"
        android:paddingBottom="15dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:orientation="horizontal">

        <TextView
            android:textSize="20dp"
            android:id="@+id/title"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="50dp"
            android:layout_gravity="center_vertical"
            android:gravity="center"
            android:text="title" />

        <Button
            android:id="@+id/imageViewplaces"
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:text="OK"
            android:onClick="ClickButton" />

    </LinearLayout>

    <Spinner
        android:layout_below ="@+id/mainlayout"
        android:layout_marginRight="10dp"
        android:id="@+id/spinner"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:prompt="@string/spinner_title" />

</LinearLayout>

activityclass: -

public class SpinnerList extends AppCompatActivity {

    String [] spinnerList = {"first","second","third"
    };
    Spinner spinner;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.spinner_layout);

        spinner = (Spinner)findViewById(R.id.spinner);
        // Creating adapter for spinner
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, spinnerList);
        // Drop down layout style - list view with radio button
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        // attaching data adapter to spinner
        spinner.setAdapter(dataAdapter);
        spinner.setVisibility(spinner.GONE);
    }

    public void ClickButton(View view){

        spinner.performClick();
    }

enter image description here

4 个答案:

答案 0 :(得分:1)

it looks like this 你走了:

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

<LinearLayout
    android:id="@+id/mainlayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_toLeftOf="@id/imageViewplaces"
    android:orientation="horizontal"
    android:paddingBottom="15dp"
    android:paddingTop="15dp">

    <TextView
        android:id="@+id/title"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:gravity="center"
        android:text="title"
        android:textSize="20dp" />

</LinearLayout>


<Button
    android:id="@+id/imageViewplaces"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_alignParentRight="true"
    android:layout_marginTop="15dp"
    android:layout_marginRight="15dp"
    android:onClick="ClickButton"
    android:text="OK" />

<Spinner
    android:id="@+id/spinner"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/imageViewplaces"
    android:layout_alignParentRight="true"
    android:layout_marginTop="10dp"
    android:layout_marginRight="10dp"
     />
</RelativeLayout>

答案 1 :(得分:0)

使用相对布局作为包装,而不是使用linearlayout来有效地实现此目的。 您可以使用relativelayout

指定微调器严格保留在按钮下方

答案 2 :(得分:0)

<Spinner
android:id="@+id/name_of_board_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:overlapAnchor="false"/>

答案 3 :(得分:0)

如果我理解正确,您希望列表位于按钮下方。如果是,那么我建议你改用PopupMenu

代码

PopupMenu popup = new PopupMenu(this, country /* your button */);
for (int i = 0; i < spinnerList.length; i++)
    popup.getMenu().add(1, i, i + 1, spinnerList[i]);
popup.setOnMenuItemClickListener(new OnMenuItemClickListener() {

    @Override
    public boolean onMenuItemClick(MenuItem menuItem) {
        // perform your task
        return false;
    }
});

希望这会以某种方式帮助你。