2014-07-07 27 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