簡體   English   中英

文本視圖根據微調器和單擊按鈕的edittext進行更改

[英]Textview changing according to spinner and edittext with button click

我想做的很簡單,我有一個帶有一些項目的微調器,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,則以下switch語句應該開始(如果選擇了項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;
            }
        }
    });
}

代碼沒有錯誤,應用程序正常啟動,但是當我選擇第一個項目然后單擊按鈕時,沒有任何反應。 創建對話框時我做錯什么了嗎?

首先,您需要為按鈕設置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;
         }
    }
});

您可以將監聽器分配給微調器。

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等。關於所有這些,在線上有很多資源。

希望這可以幫助!

您可以使用以下方法之一來獲取微調框的選定項目。

spinner.getSelectedItem() 
spinner.getSelectedItemPosition()

您使用哪一個與如何將項目加載到微調器中有關。 單擊此鏈接以獲取有關這些方法的更多信息。

你可以做這樣的事情。 您需要為button設置onClickListener 當單擊button時,將調用onClick方法。 用這種方法檢查spinner的選定項目。

    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基本功能onCLickListeners

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM