【发布时间】:2013-11-17 02:34:45
【问题描述】:
我有一个扩展 DialogFragment 的片段,我有一个自定义布局,其中包含三个 EditText 和两个按钮 - 保存和取消。我的对话框显示得很好,使用 onCreateView 方法指定布局,但是当我实现 setOnclickListener 时,我的应用程序崩溃了。这可能有一个简单的解决方案,但我已经被困了几个小时。非常感谢您的建议或示例代码。
下面是 DialogFragment 的代码
import java.text.SimpleDateFormat;
import java.util.Calendar;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
public class UpdateGrade extends DialogFragment{
private Button cancelBtn;
@SuppressLint("SimpleDateFormat")
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.update_grade_layout, container);
cancelBtn = (Button) view.findViewById(R.id.cancelBtn);
EditText dateField = (EditText) view.findViewById(R.id.dateField);
Calendar c = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = df.format(c.getTime());
dateField.setText(formattedDate);
cancelBtn.setOnClickListener(new View.OnClickListener() { //LINE 28
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
return view;
}
}
下面是我调用 DialogFragment 出现的地方
@Override
public void onItemClick(AdapterView<?> a, View v, int i, long l) {
// TODO Auto-generated method stub
@SuppressWarnings("unchecked")
HashMap<String, String> selected_row = (HashMap<String, String>) simpleAdapter.getItem(i);
String selectedGrade=selected_row.get("grade_id");
FragmentManager fm = getFragmentManager();
UpdateGrade d = new UpdateGrade();
d.show(fm, "update_grade_layout");
}
这是 LogCat 详细信息
11-17 02:09:56.758: E/AndroidRuntime(778): FATAL EXCEPTION: main
11-17 02:09:56.758: E/AndroidRuntime(778): java.lang.NullPointerException
11-17 02:09:56.758: E/AndroidRuntime(778): at com.feufern.apms.UpdateGrade.onCreateView(UpdateGrade.java:28)
11-17 02:09:56.758: E/AndroidRuntime(778): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:795)
11-17 02:09:56.758: E/AndroidRuntime(778): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:998)
11-17 02:09:56.758: E/AndroidRuntime(778): at android.app.BackStackRecord.run(BackStackRecord.java:622)
11-17 02:09:56.758: E/AndroidRuntime(778): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1330)
11-17 02:09:56.758: E/AndroidRuntime(778): at android.app.FragmentManagerImpl$1.run(FragmentManager.java:417)
【问题讨论】:
-
第 28 行是什么
UpdateGrade.java? -
我再次同意 Raghunandan :D 请在上述文件的第 28 行插入评论
-
@koneko 是第 28 行吗?确定??
-
第 28 行:cancelBtn.setOnClickListener(new View.OnClickListener()){
-
@koneko
cancelBtn为空。检查xml中的idupdate_grade_layout