2013-10-14 19 views
0

我正在製作一個可以在屏幕上顯示水果選項的應用程序。果實爲:使用按鈕從onOptionsItem中獲取值選中

  1. 蘋果

  2. 葡萄

  3. 橙色

在屏幕上的過程中,我把開關過程,所以它會切換:

  1. 蘋果第一2秒鐘

  2. 然後切換到葡萄2秒鐘

  3. 然後切換橙2秒鐘

切換過程將連續工作。

現在我想製作一個「選擇按鈕」和一個「微調器」,這樣用戶可以選擇一個水果,他會在「微調器」上看到他的選擇。

例如: 用戶想要選擇橙色。

用戶將等待屏幕上顯示「橙色」。

當屏幕上顯示「橙色」時,直接按下「選擇按鈕」,同時「Spinner1」將被填充「橙色值」。

*我不想使用TextView。

這裏是我的代碼...

主要活動

private MenuItem Apple; 
private MenuItem Grape; 
private MenuItem Orange; 

    private Spinner spinner; 
    private Button choose_button; 
    private Button btnPrice; 

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

    choose_button = (Button) findViewById(R.id.button1); 

     addListenerOnButton(); 
     addListenerOnSpinnerItemSelection(); 

    } 

@Override 
public void onClick(View v) 
{ // i don't know what should i write here 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    Log.i(TAG, "onCreateOptionsMenu"); 
    Apple = menu.add("Apple"); 
    Grape = menu.add("Grape"); 
    Orange = menu.add("Orange"); 

@Override 
public boolean onOptionsItemSelected(MenuItem fruit) { 
    Log.i(TAG, "Menu Item selected " + fruit); 
    if (fruit == Apple) { 
     frame.setViewMode(classfruit.apple); 
     new Thread(new Runnable() { 
      public void run() { 
       try { 
       Thread.sleep(2000); 
       onOptionsItemSelected(Grape);} 
       catch(Exception ex){}} 
      }).start(); 
    } else if (fruit == Grape) { 
     frame.setViewMode(classfruit.grape); 
     new Thread(new Runnable() { 
      public void run() { 
       try { 
       Thread.sleep(2000); 
       onOptionsItemSelected(orange);} 
       catch(Exception ex){}} 
      }).start(); 
    } else if (fruit == orange) { 
     frame.setViewMode(classfruit.orange); 
     new Thread(new Runnable() { 
      public void run() { 
       try { 
       Thread.sleep(2000); 
       onOptionsItemSelected(apple);} 
       catch(Exception ex){}} 
      }).start(); 

public void addListenerOnSpinnerItemSelection() { 

    spinner1 = (Spinner) findViewById(R.id.spinner1); 
    spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener()); 

// get the selected dropdown list value 
    public void addListenerOnButton() { 

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

      btnPrice = (Button) findViewById(R.id.btnPrice); 

btnSubmit.setOnClickListener(new OnClickListener() { 

@Override 
public void onClick(View v) { 
/* get fruit */ 
String fruit = String.valueOf(spinner1.getSelectedItem()); 

    /* get price */ 
String price = getPrice(fruit); 

public String getPrice(String fruit) { 
     String price = "0"; 
     if (fruit.equalsIgnoreCase("Apple")) { 
      price = "1"; 
     } else if (warna.equalsIgnoreCase("Grape")) { 
      price = "2"; 
     } else if (warna.equalsIgnoreCase("Orange")) { 
      price = "3"; 
     } 

main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 

<Spinner 
    android:id="@+id/spinner1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:entries="@array/fruit" 
/> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:text="@string/btn_choose" /> 

〜應變g.xml

<string name="btn_choose">Choose</string> 

<string-array name="fruit"> 
    <item>Apple</item> 
    <item>Grape</item> 
    <item>Orange</item> 
</string-array> 
+0

所以,當上選擇按鈕,用戶點擊即可微調項汽車2秒後選擇。停止 ? –

+0

yes haresh,當用戶點擊「選擇按鈕」時,直接點擊「選擇按鈕」會告訴微調者已經選擇了什麼(example.orange),所以微調器會自動選擇「橙色」。 – user2718189

+0

您需要在按鈕 – WISHY

回答

-1

檢查我的代碼:

activity_main。XML:

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

    <Spinner 
      android:id="@+id/spinner" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"/> 

    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Choose"/> 
</LinearLayout> 

MainActivity:

package com.example.MyTest; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.Spinner; 

import java.util.Arrays; 
import java.util.Timer; 
import java.util.TimerTask; 

public class MainActivity extends Activity { 

    private Spinner spinner; 
    private Button button; 
    private Timer timer; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     spinner = (Spinner) findViewById(R.id.spinner); 
     button = (Button) findViewById(R.id.button); 

     spinner.setAdapter(new ArrayAdapter(this, 
       android.R.layout.simple_spinner_dropdown_item, 
       Arrays.asList(getResources().getStringArray(R.array.fruit)))); 
     timer = new Timer(); 
     timer.schedule(new TimerTask() { 
      @Override 
      public void run() { 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         if(spinner.getSelectedItemPosition() == (Arrays.asList(getResources().getStringArray(R.array.fruit)).size()-1)){ 
          spinner.setSelection(0); 
         }else{ 
          spinner.setSelection(spinner.getSelectedItemPosition()+1); 
         } 
        } 
       }); 
      } 
     },0,2000); 

     button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      if (timer != null) { 
       timer.cancel(); 
      } 
      String spinnerSelectedItem = (String) spinner.getSelectedItem(); 
      Toast.makeText(MainActivity.this,spinnerSelectedItem,Toast.LENGTH_LONG).show(); 
     } 
    }); 
    } 

} 

enter image description here

+0

謝謝你Haresh,我正在嘗試.. – user2718189

+0

對不起Haresh,它不工作。 第一次我不使用適配器(因爲我不知道如何使用它) 所以我直接使用android:entries @ array/fruit。 你可以幫助我只是通過onItemSelected使用單擊按鈕來獲取水果名稱(example.orange)。那麼微調器上會出現「橙色」? – user2718189

+0

我忘記發佈我的主要XML,所以我已經用Main.xml更新了代碼,請幫忙。 – user2718189

0

非常感謝你Haresh,我的計劃是在半路上運作良好.....

下一步如何設置這個定時器是這樣的..

當應用程序被啓動,只有Spinner1運行(現在當應用程序被啓動的所有紡紗廠正在運行),

然後當我點擊btn_choose1那麼Spinner1被停止然後Spinner2開始直到btn_choose2再次被點擊,然後停止。

這裏是我的代碼...

// get the selected dropdown list value 
    public void addListenerOnButton() { 

     spinner1 = (Spinner) findViewById(R.id.spinner1); 
     spinner2 = (Spinner) findViewById(R.id.spinner2); 
     spinner3 = (Spinner) findViewById(R.id.spinner3); 

     btn_choose1 = (Button) findViewById(R.id.button1); 
     btn_choose2 = (Button) findViewById(R.id.button2); 
     btn_choose3 = (Button) findViewById(R.id.button3); 

     timer1 = new Timer(); 
     timer1.schedule(new TimerTask() { 
      @Override 
      public void run() { 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         if(spinner1.getSelectedItemPosition() == (Arrays.asList(getResources().getStringArray(R.array.cincin_warna)).size()-1)){ 
          spinner1.setSelection(0); 
         }else{ 
          spinner1.setSelection(spinner1.getSelectedItemPosition()+1); 
         } 
        } 
       }); 
      } 
     },0,1000); 

     btn_choose1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if(timer1!=null){ 
        timer1.cancel(); 
       } 
      } 
     }); 

     timer2 = new Timer(); 
     timer2.schedule(new TimerTask() { 
      @Override 
      public void run() { 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         if(spinner2.getSelectedItemPosition() == (Arrays.asList(getResources().getStringArray(R.array.cincin_warna)).size()-1)){ 
          spinner2.setSelection(0); 
         }else{ 
          spinner2.setSelection(spinner2.getSelectedItemPosition()+1); 
         } 
        } 
       }); 
      } 
     },0,1000); 

     btn_choose2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if(timer2!=null){ 
        timer2.cancel(); 
       } 
      } 
     }); 

     timer3 = new Timer(); 
     timer3.schedule(new TimerTask() { 
      @Override 
      public void run() { 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         if(spinner3.getSelectedItemPosition() == (Arrays.asList(getResources().getStringArray(R.array.cincin_warna)).size()-1)){ 
          spinner3.setSelection(0); 
         }else{ 
          spinner3.setSelection(spinner3.getSelectedItemPosition()+1); 
         } 
        } 
       }); 
      } 
     },0,1000); 

     btn_choose3.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if(timer3!=null){ 
        timer3.cancel(); 
       } 
      } 
     }); 
相關問題