綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 怎麼使用下拉式選單Spinner 結合文字應用

[複製連結] 查看: 3025|回覆: 11|好評: 1
跳轉到指定樓層
樓主
jianmintai | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2011-10-23 23:52

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
最近想寫一個關於文字設定的程式,textviex結合Spinner下拉式選單讓使用者自行選擇想要的文字顏色~  

但Spinner選單裡面的數值都用好了,就差怎麼去應用改變textview... 選顏色案確定永遠都失敗..... 研究了大半天都研究不出來....能否有高手幫我解答一下~^^順便提供一下寫法~ 提供一種顏色改變的寫法就好~^^感謝各位大大

「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏1 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
ploglin | 收聽TA | 只看該作者
發表於 2011-10-24 14:57
改變 textview 的顏色應該算是基礎唷

  1. TextView tv = (TextView)this.findViewById(R.id.textView1);
  2. tv.setTextColor(Color.RED);

  3. // or

  4. tv.setTextColor(0xff000000);
複製代碼
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
 樓主| jianmintai | 收聽TA | 只看該作者
發表於 2011-10-24 16:10
版主大大謝謝囉^^下班回去試試看^^~ 但數值不知道怎去應用~ 我提供我寫的下拉選單
public class Main2 extends Activity {
       
    Spinner mSpinner;
       
    static final String[] mDaysList=new String[] {
        "紅色", "黃色", "藍色", "綠色",
        "白色", "天空色"
    };   
        static final String[] mDaysList2=new String[] {
            "12", "14", "16", "18",
            "20", "22"
        };
   
    @Override
        public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main2);
             
             
             
               mSpinner = (Spinner) findViewById(R.id.spinner1);
               
         
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                        android.R.layout.simple_spinner_item, mDaysList);
                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                mSpinner.setAdapter(adapter);
                
                
                mSpinner  = (Spinner) findViewById(R.id.spinner2);
                    
                ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this,
                        android.R.layout.simple_spinner_item, mDaysList2);
                adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                mSpinner.setAdapter(adapter2);
          
                
               
                
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
ploglin | 收聽TA | 只看該作者
發表於 2011-10-24 16:53

  1. // 取得 spinner 目前被選擇的 position
  2. int position = mSpinner.getSelectedItemPosition();
複製代碼

評分

參與人數 1幫助 +1 收起 理由
邱祥意 + 1

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
 樓主| jianmintai | 收聽TA | 只看該作者
發表於 2011-10-24 21:30
版主大大您好^^"剛下班後研究了大半天真是沒辦法突破事件的應用~.~我比較擅長版面設計^^"....能否幫我解答一下一個顏色的寫法呢??^^
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

6
ploglin | 收聽TA | 只看該作者
發表於 2011-10-24 23:30
本帖最後由 ploglin 於 2011-10-24 23:57 編輯

不好意思,下面的程式碼我沒有實際的測試過,不過大致上的作法就是如此,如果還有遇到錯誤的話再跟我說。

  1. // 宣告全域
  2. private TextView tv;

  3. // 在 onCreate 的 method 中定義 textview
  4. tv = (TextView)this.findViewById(R.id.textView1);

  5. // 對 mSpinner 下事件
  6. mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
  7.     @Override
  8.     public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
  9.         int position = mSpinner.getSelectedItemPosition();
  10.         switch(position) {
  11.             case 0:
  12.                 // 切換成紅色
  13.                 tv.setTextColor(Color.RED);
  14.                 break;
  15.             case 1:
  16.                 // 切換成黃色
  17.                 tv.setTextColor(Color.YELLOW);
  18.                 break;
  19.             case 2:
  20.                 // 切換成藍色
  21.                 tv.setTextColor(Color.BLUE);
  22.                 break;
  23.             case 3:
  24.                 // 切換成綠色
  25.                 tv.setTextColor(Color.GREEN);
  26.                 break;
  27.             case 4:
  28.                 // 切換成白色
  29.                 tv.setTextColor(Color.WHITE);
  30.                 break;
  31.         }
  32.     }

  33.     @Override
  34.     public void onNothingSelected(AdapterView<?> parentView) {
  35.     }

  36. });
複製代碼
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

7
 樓主| jianmintai | 收聽TA | 只看該作者
發表於 2011-10-24 23:45
版主大大太感謝您囉^^目前自己研究的寫法還在DEBUG中^^" 晚點我套您的方法下去RUN^^
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

8
 樓主| jianmintai | 收聽TA | 只看該作者
發表於 2011-10-25 00:01
大致上沒問題 不過   int position = mSpinner.getSelectedItemPosition(); //position錯誤
                        TextView tv = (TextView)this.findViewById(R.id.myText)//findViewById錯誤

是不是我寫在另個JAVA視窗所以才出錯^^?我這修改顏色的畫面是要回傳到第一個視窗的文字^^ 因該是沒差^^"抱歉對撰寫不熟^^
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

9
 樓主| jianmintai | 收聽TA | 只看該作者
發表於 2011-10-25 00:30
本帖最後由 jianmintai 於 2011-10-25 00:35 編輯

目前只有 int position = mSpinner.getSelectedItemPosition(); position跟mSpinner兩者紅線錯誤  position說區域變數重複??,是不是我SPINNER名稱沒定義好??^^

public class Main2 extends Activity {
       
   
    private TextView tv;
  
    static final String[] mDaysList=new String[] {
        "紅色", "黃色", "藍色", "綠色",
        "白色", "天空色"
    };   
        static final String[] mDaysList2=new String[] {
            "12", "14", "16", "18",
            "20", "22"
        };
   
    @Override
        public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main2);
             tv = (TextView)this.findViewById(R.id.myText);
             Spinner mSpinner;
             
               mSpinner = (Spinner) findViewById(R.id.spinner1);
               
         
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                        android.R.layout.simple_spinner_item, mDaysList);
                adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
                mSpinner.setAdapter(adapter);
               
                
                
                mSpinner  = (Spinner) findViewById(R.id.spinner2);
                    
                ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this,
                        android.R.layout.simple_spinner_item, mDaysList2);
                adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                mSpinner.setAdapter(adapter2);
          
               
            /*
                Button b1 = (Button) findViewById(R.id.button1);
                b1.setOnClickListener(new Button.OnClickListener()
                {
                  public void onClick(View v)
                  {
                   finish();
                       
                  }
                });
                
                */
                mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
                   
                    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
                        int position = mSpinner.getSelectedItemPosition();
                        switch(position) {
                            case 0:
                                // 切換成紅色
                                tv.setTextColor(Color.RED);
                                break;
                            case 1:
                                // 切換成黃色
                                tv.setTextColor(Color.YELLOW);
                                break;
                            case 2:
                                // 切換成藍色
                                tv.setTextColor(Color.BLUE);
                                break;
                            case 3:
                                // 切換成綠色
                                tv.setTextColor(Color.GREEN);
                                break;
                            case 4:
                                // 切換成白色
                                tv.setTextColor(Color.WHITE);
                                break;
                        }
                    }

                    public void onNothingSelected(AdapterView<?> parentView) {
                    }

                });
                
             
            }  
        }
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

10
ploglin | 收聽TA | 只看該作者
發表於 2011-10-25 09:12
直接貼給你完整的 code 其實不是很好,但希望你不是只是 Copy/Paste,可以自己想想。


  1. public class Main2 extends Activity {
  2.         private TextView tv;
  3.         private Spinner mSpinner;

  4.         static final String[] mDaysList = new String[] { "紅色", "黃色", "藍色", "綠色", "白色", "天空色" };
  5.         static final String[] mDaysList2 = new String[] { "12", "14", "16", "18", "20", "22" };

  6.         @Override
  7.         public void onCreate(Bundle savedInstanceState) {
  8.                 super.onCreate(savedInstanceState);
  9.                 setContentView(R.layout.main2);
  10.                 tv = (TextView) this.findViewById(R.id.myText);

  11.                 mSpinner = (Spinner) findViewById(R.id.spinner1);

  12.                 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mDaysList);
  13.                 adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
  14.                 mSpinner.setAdapter(adapter);

  15.                 mSpinner = (Spinner) findViewById(R.id.spinner2);

  16.                 ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mDaysList2);
  17.                 adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  18.                 mSpinner.setAdapter(adapter2);

  19.                 mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

  20.                         @Override
  21.                         public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
  22.                                 // TODO Auto-generated method stub
  23.                                 int pos = mSpinner.getSelectedItemPosition();
  24.                                 switch (pos) {
  25.                                 case 0:
  26.                                         // 切換成紅色
  27.                                         tv.setTextColor(Color.RED);
  28.                                         break;
  29.                                 case 1:
  30.                                         // 切換成黃色
  31.                                         tv.setTextColor(Color.YELLOW);
  32.                                         break;
  33.                                 case 2:
  34.                                         // 切換成藍色
  35.                                         tv.setTextColor(Color.BLUE);
  36.                                         break;
  37.                                 case 3:
  38.                                         // 切換成綠色
  39.                                         tv.setTextColor(Color.GREEN);
  40.                                         break;
  41.                                 case 4:
  42.                                         // 切換成白色
  43.                                         tv.setTextColor(Color.WHITE);
  44.                                         break;
  45.                                 }
  46.                         }

  47.                         @Override
  48.                         public void onNothingSelected(AdapterView<?> arg0) {
  49.                                 // TODO Auto-generated method stub
  50.                                
  51.                         }

  52.                 });

  53.         }
  54. }
複製代碼
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則