按钮单击,根据微调器和edittext更改Textview

时间:2013-06-22 09:26:40

标签: java android eclipse spinner

我想要做的很简单,我有一个带有一些项目的微调器,edittext和一个按钮。我希望能够使用微调器选择某个项目,然后为edittext键入特定值,然后单击按钮。根据我之前选择的微调项目,文本视图将在活动中发生变化。

public void submitButtonClick (View submit){
    Spinner s1 = (Spinner)findViewById(R.id.spinner1);
    Button b1 = (Button)findViewById(R.id.button2);

    if (b1.performClick())
    {
        switch (){

        }
    }
}

这是我到目前为止所提出的,如果我点击按钮b1,下面的开关语句应该开始(如果选择了第1项,做某件事等)但我不知道如何实现这个。如果有人可以提供帮助,我会很感激。谢谢

这是我到目前为止所做的:

public void submit (View v){
    Button b1 = (Button)findViewById(R.id.button2);
    final Spinner s1 = (Spinner)findViewById(R.id.spinner1);
    final Context context = this;

    b1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            int position = s1.getSelectedItemPosition();

            switch (position){
            case 0:
                AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
                alertDialogBuilder.setTitle("Warning");
                alertDialogBuilder.setMessage("Please choose an item from the list");
                alertDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int id) {
                        Bifrost.this.finish();
                    }
                });
                AlertDialog spinnerError = alertDialogBuilder.create();
                spinnerError.show();
                break;
            case 1:
                break;
            }
        }
    });
}

代码没有错误,应用程序正常启动但是当我选择第一个项目然后单击按钮时没有任何反应。我在创建对话框时做错了吗?

4 个答案:

答案 0 :(得分:1)

首先需要在按钮上设置onClickListener,然后需要获取微调器的选定项。

b1.setOnClickListener(new View.OnClickListener(){
    public void onClick(View v){
        int position = s1.getSelectedItemPosition();

         switch(position){
              case 0: //first item
              break;
              case 1: //second item
              break;
         }
    }
});

答案 1 :(得分:0)

您可以为您的微调器分配一个监听器。

s1.setOnItemSelectedListener(new OnItemSelectedListener() {

    // will run every time the user select an item from your spinner
    @Override
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {

        // change your textView here, base on position (index of item selected in spinner)
        if (position == 0) {

            // user selected the first item in spinner

        } 

        else if (position == 1) {

            // user selected the second item in spinner

        }

        // and so on...
    }


});

之后,您可以为按钮分配另一个侦听器(与上面的代码类似 - 匿名内部类,匿名声明和初始化)。它还必须覆盖onClick等等。网上有很多关于所有这些的资源。

希望这有帮助!

答案 2 :(得分:0)

您可以使用以下方法之一来获取微调器的所选项目。

spinner.getSelectedItem() 
spinner.getSelectedItemPosition()

您使用哪一个,与如何将项目加载到您的微调器中有关。 请按照此link获取有关这些方法的更多信息。

答案 3 :(得分:0)

你可以这样做。您需要将onClickListener设置为button。单击button时,将调用onClick方法。在该方法中,检查spinner .. Forexmple

的所选项目
    Spinner s1 = (Spinner)findViewById(R.id.spinner1);
    Button b1 = (Button)findViewById(R.id.button2);

   b1.setOnclickListener(new onClickListener(){
         public void onCLick(View v){

            switch(s1.getSelectedItemPosition()){
                case 0:
                   // do something 
                   `enter code here`break
                 ..........
            }
         }  
      }
   );

我只是试图给出一个概念性的想法,代码并不精确,但这就是你应该怎么做的。所以我的建议是在实现这个精益之前buttonsspinnersonCLickListeners的基本功能。