Android Number Picker get value to textview

xfb7svmp  于 2023-04-10  发布在  Android
关注(0)|答案(2)|浏览(130)

我正在使用带有数字选择器的警报对话框,但我不知道在按警报的OK按钮时将数字选择器值获取到Activity中的textview的简单方法。
活动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>
svujldwt

svujldwt1#

使用picker.getValue()获取选择器的当前值。
选中Dialog按钮后,使用拾取值更新Activity中的TextView

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

        }
    });
laximzn5

laximzn52#

确保将最后一个限定符添加到NumberPicker:
NumberPicker picker = (NumberPicker) v1.findViewById(R.id.np1);

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

相关问题