2014-05-08 21 views
4

我正在使用一个数字选取器的提示对话框,但我不知道一个简单的方法,当按下OK按钮警报。Android编号选取器获取文本视图的值

活动Java代码:

public class SecondActivity extends Activity { 

public void button2 (View v){ 

    View v1 = getLayoutInflater().inflate(R.layout.dialog1, null); 

    NumberPicker picker = (NumberPicker) v1.findViewById(R.id.np1); 
    picker.setMinValue(1); 
    picker.setMaxValue(20); 
    picker.setWrapSelectorWheel(false); 
    //final int number = picker.getValue(); 

    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setView (v1); 
    builder.setTitle("Cantidad"); 
    builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      return; 
     } }); 
    builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      return; 
     } }); 

    AlertDialog dialog = builder.create(); 
    dialog.show(); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_second); 

} 

} 

显示布局:

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


    <NumberPicker 
     android:id="@+id/np1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     /> 
</LinearLayout> 

活动布局:

<LinearLayout 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="ale.demarco.ale005.SecondActivity$PlaceholderFragment" > 

<TextView 
    android:id="@+id/Text2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Text2" 
    android:textSize="20sp"/> 



<Button 
    android:id="@+id/button2" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/button2" 
    android:onClick="button2" 
    android:layout_gravity="right" /> 


</LinearLayout> 
+0

你的问题是? – Stefan

回答

9

使用picker.getValue()获得选择器的当前值。

Dialog按钮被选中,更新ActivityTextView有回升值

builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int which) { 
     int pickedValue = picker.getValue(); 
     // set your TextView id instead of R.id.textView1 
     TextView textView = (TextView)findViewById(R.id.textView1); 
     textView.setText(Integer.toString(pickedValue)); 
     return; 
    } }); 

您还可以添加一个监听器监听号码改变这样

picker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() { 
     @Override 
     public void onValueChange(NumberPicker picker, int oldVal, int newVal) { 
      // do your other stuff depends on the new value 

     } 
    }); 
2

确保将最终限定符添加到您的NumberPicker中:
NumberPicker picker = (NumberPicker) v1.findViewById(R.id.np1);

final NumberPicker picker = (NumberPicker) v1.findViewById(R.id.np1);