从android中的数组以编程方式创建微调器

时间:2016-03-19 04:40:01

标签: android android-spinner

我是Android新手,我尝试以编程方式创建微调器,并在点按按钮时将数据从数组中提取

当我点击我的第一个按钮然后按下面按钮我希望在SpinnerList的帮助下显示最高的

当我点击我的第二​​个按钮然后按下面的按钮我想在SpinnerList的帮助下显示moviesList请帮帮我一个

的xml: -

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

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="Button1Action"
        android:text="CountiesList"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="Button2Action"
        android:text="MoviesList"/>

</LinearLayout>

活动: -

public class spinnerListProgramatically extends AppCompatActivity{

    String [] countriesList = {"india","usa","england"
    };

    String [] moviesList = {"fury","300 rise of an empire","troy"
    };

    Spinner spinner;
    LinearLayout parentLayout;

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

        parentLayout = (LinearLayout)findViewById(R.id.parentLayout);
    }

    public void Button1Action(View view){

        //Initializing imageView
        spinner = new Spinner(this);
        spinner.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
        parentLayout.addView(spinner);

        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, countriesList);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(dataAdapter);

    }

    public void Button2Action(View view){



    }
}

2 个答案:

答案 0 :(得分:2)

试试这段代码 XML:

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

        <Button
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="Button1Action"
            android:text="CountiesList"/>

        <Button
            android:id="@+id/button2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="Button2Action"
            android:text="MoviesList"/>
    <Spinner
       android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/spinner1">

    </Spinner>
    </LinearLayout>  

ACTIVITY:

public class spinnerActivity extends AppCompatActivity{

    String [] countriesList = {"india","usa","england"
    };

    String [] moviesList = {"fury","300 rise of an empire","troy"
    };

    Spinner spinner;
    LinearLayout parentLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.spinnerlist_runtime);
        spinner =(Spinner)findViewById(R.id.spinner1);
        parentLayout = (LinearLayout)findViewById(R.id.parentLayout);
    }

    public void Button1Action(View view){


        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, countriesList);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(dataAdapter);

    }

    public void Button2Action(View view){

        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, moviesList);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(dataAdapter);

    }
}

答案 1 :(得分:1)

将所有微调器放在XML文件中各自的位置,但将其可见性设置为gone。单击该按钮后,再次将其显示为visible

<Button
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="Button1Action"
    android:text="CountiesList"/>

<Spinner
    android:visibility="gone"
    android:id="@+id/spinner1"
    android:layout_below:"@+id/button1"
    android:layout_marginTop="5dp">


    <!--Write all the spinner properties here-->
</Spinner>

然后,在java类的Button1Action中,将其可见性设置为可见:

public void Button1Action(View view){

    //Initializing imageView
    spinner = findViewById(R.id.spinner1);
    spinner.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
    parentLayout.addView(spinner);

    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, countriesList);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(dataAdapter);

    spinner.setVisibility(View.VISIBLE);

}