获取微调器位置并在按钮onclick中使用它

时间:2014-12-22 22:39:22

标签: android spinner

我正在尝试使用一个文本视图,一个按钮和一个微调器创建应用程序。我使按钮工作显示字符串数组中的随机值,但我有很多不同的字符串数组(list1,list2等)。现在我的问题是当更改微调器位置时,如何获取按钮获取另一个字符串数组(来自微调器)并将其显示为textview。 如何在微调器中选择某些内容时从微调器传递值。 任何帮助表示赞赏。 这是我的代码:

public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener {

    Button btn;


    public String[] myString,myString1;
    public static final Random rgenerator = new Random();



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

         //textview
        final TextView tv = (TextView) findViewById(R.id.textureView);
        final Resources res = getResources();



         //string
        myString = res.getStringArray(R.array.World_War_I);
        myString1 = res.getStringArray(R.array.World_War_II);



    //button
        btn = (Button) findViewById(R.id.buttonxx);
        btn.setOnClickListener(new View.OnClickListener(){
            public void onClick (View v){

           //i am missing code here, spinner position, and pass spinner position to if statement.

                  if (==0){

                      myString = res.getStringArray(R.array.list1);

                      String q = myString[rgenerator.nextInt(myString.length)];
                      tv.setText(q);
                 }
                  if (==1){
                    myString1 = res.getStringArray(R.array.list2);

                     String q1 = myString1[rgenerator.nextInt(myString.length)];
                     tv.setText(q1);
                   }


            }
        });


        //drop list
        Spinner spinner = (Spinner) findViewById(R.id.spinnerrrr);
        spinner.setOnItemSelectedListener(this);


        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.kategorije, android.R.layout.simple_spinner_item);

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);


        spinner.setAdapter(adapter);

    }
    // when some cat selected
    public void onItemSelected(AdapterView<?> parent, View view,
                               final int pos, long id) {
        // An item was selected. You can retrieve the selected item using
        parent.getItemAtPosition(pos);
        parent.setSelection(0);
        parent.getSelectedItemPosition();


    }





    public void onNothingSelected(AdapterView<?> parent) {
        // Another interface callback
    }

1 个答案:

答案 0 :(得分:0)

使用此

// when some cat selected
public void onItemSelected(AdapterView<?> parent, View view,
                           final int pos, long id) {
    // An item was selected. You can retrieve the selected item using
    btn.setTag(pos+""); // Passing as string
    parent.getItemAtPosition(pos);
    parent.setSelection(0);
    parent.getSelectedItemPosition();


}

然后

btn.setOnClickListener(new View.OnClickListener(){
        public void onClick (View v){

       //i am missing code here, spinner position, and pass spinner position to if statement.
       int index = Integer.parseInt(btn.getTag().toString());

              if (index==0){

                  myString = res.getStringArray(R.array.list1);

                  String q = myString[rgenerator.nextInt(myString.length)];
                  tv.setText(q);
             }
              if (index==1){
                myString1 = res.getStringArray(R.array.list2);

                 String q1 = myString1[rgenerator.nextInt(myString.length)];
                 tv.setText(q1);
               }


        }
    });