如何使用搜索栏创建警报对话窗口?

时间:2015-02-24 15:56:59

标签: java android android-studio

我有以下布局:

<SeekBar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/seekBar"
    android:max="100"
    android:progress="20"
    android:layout_gravity="center_horizontal"
    android:progressDrawable="@android:color/white"
    android:thumb="@drawable/drunk"
    />

在警告对话框

之外声明
private SeekBar.OnSeekBarChangeListener customSeekBarListener = new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            Log.d(TAG, "Progress is " + progress);
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    } ;

这是我单击按钮(已编辑)时发生的警告对话框

public void press(){
   LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   View mView = inflater.inflate(R.layout.seekbar, null);
   SeekBar mySeekBar = (SeekBar) findViewById(R.id.seekBar);
   mySeekBar.setOnSeekBarChangeListener(customSeekBarListener);
  // final EditText input = new EditText(this);
  // input.setInputType(InputType.TYPE_CLASS_NUMBER );

    AlertDialog.Builder myAlert = new AlertDialog.Builder(this);
   //LayoutInflater inflater = MainActivity.this.getLayoutInflater();
   myAlert.setView(inflater.inflate(R.layout.fragment_edit_name,null))
            .setView(mView)
            .setMessage("SeekBar")
            .setTitle("title")
            .setIcon(R.drawable.ic_launcher)
            .create();
    myAlert.show();
}

我确信我错过了一些东西,因为它不起作用。我该如何解决?我使用的是android-studio。

我现在得到的错误是:

java.lang.NullPointerException
            at projectName.MainActivity.press(MainActivity.java:109)

该行是mySeekBar.setOnSeekBarChangeListener(customSeekBarListener);

2 个答案:

答案 0 :(得分:0)

首先将要设置为LayoutInflater对话框的视图充气:

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View mView = inflater.inflate(R.layout.dialog_view, null);

比初始化你的搜索栏:

SeekBar mySeekBar = (SeekBar) mView.findViewById(R.id.seekBar);
mySeekBar.setOnSeekBarChangeListener(customSeekBarListener);

设置对话框视图以查看您的虚增:

AlertDialog.Builder myAlert = new AlertDialog.Builder(this);
myAlert.setMessage("SeekBar")
        .setView(mView)
        .setTitle("Title")
        .setIcon(R.drawable.ic_launcher)
        .create();
myAlert.show();

希望它有帮助并且编码愉快!

答案 1 :(得分:0)

您需要夸大布局。

SeekBar mySeekBar = (SeekBar) getLayoutInflater().inflate(R.layout.mySeekBar, null);