2014-07-07 65 views
-5

我正在使用一個按鈕來顯示popup.Its像一個微調,但因爲我沒有得到一個彈出窗口作爲微調我使用了一個按鈕。彈出窗口的所有值我從字符串數組。現在我想要做的是,如果用戶從彈出窗口中選擇「男性」,我想將與之相關聯的代碼發送到Web服務而不是「男性」它自己。得到所選的值位置

性別陣列

<string-array name="Gender"> 
     <item>Select Gender</item> 
     <item>Male</item> 
     <item>Female</item> 
    </string-array> 

性別ID數組

<string-array name="Gender_id"> 
     <item>Select</item> 
     <item>2</item> 
     <item>1</item> 

彈出

如果用戶從彈出式選擇 「女性」
public static void showDialog(Context c, String title, final String[] array, final Button b) { 
     builder = new AlertDialog.Builder(c); 
     builder.setTitle(title); 
     builder.setItems(array, new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       b.setText(array[i]); 
       dialogInterface.dismiss(); 
      } 
     }); 

     builder.show(); 


    } 

現在假設,2應當發送到服務器,所以基本上我想要的是用戶選擇的位置,以便我可以給其他數組並獲得代碼

+0

剛剛創建像selectedGender和onclick事件將值分配給它一個類變量。像selectedGender = i;並將此變量用作要發送到Web服務的值。 – NaserShaikh

回答

0

試試這個辦法,希望這將幫助你解決你的問題。

main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:gravity="center"> 


    <Button 
     android:id="@+id/btnSelectGender" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Select Gender"/> 

</LinearLayout> 

MyActivity.java

public class MyActivity extends Activity { 

    private Button btnSelectGender; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     btnSelectGender = (Button) findViewById(R.id.btnSelectGender); 
     btnSelectGender.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       showDialog(MyActivity.this, "Select Gender", getResources().getStringArray(R.array.Gender),new onGenderSelected() { 
        @Override 
        public void genderSelection(int position) { 
         btnSelectGender.setText(getResources().getStringArray(R.array.Gender)[position]); 
         Toast.makeText(MyActivity.this,getResources().getStringArray(R.array.Gender)[position]+" >>> "+getResources().getStringArray(R.array.Gender_id)[position],Toast.LENGTH_SHORT).show(); 
         System.out.print("Gender Title : " +getResources().getStringArray(R.array.Gender)[position]); 
         System.out.print("Gender Value : " +getResources().getStringArray(R.array.Gender_id)[position]); 
        } 
       }); 
      } 
     }); 


    } 

    public static void showDialog(Context c, String title, final String[] array,final onGenderSelected target) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(c); 
     builder.setTitle(title); 
     builder.setItems(array, new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       target.genderSelection(i); 
       dialogInterface.dismiss(); 
      } 
     }); 

     builder.show(); 


    } 
    public interface onGenderSelected{ 
     public void genderSelection(int position); 
    } 
} 
0

你的微調項創建這樣

Spinner display_spinner = (Spinner) findViewById(R.id.datadisplay_spinner); 

ArrayAdapter<CharSequence> record_length_spinner_adapter = ArrayAdapter 
      .createFromResource(youractivity.this, R.array.Gender, android.R.layout.simple_spinner_item); 
record_length_spinner_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
display_spinner.setAdapter(record_length_spinner_adapter); 
+0

我還沒有使用微調,我用了一個按鈕 – Anuj