我有以下布局:
<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);
答案 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);