Android 如何使用可以将数据插入arraylist的对话框
我是android的新手,我尝试使用一个对话框,提示用户在arraylist中插入一些数据。 我面临与getActivity相关的java类中的问题,因为我只使用java类扩展活动Android 如何使用可以将数据插入arraylist的对话框,android,Android,我是android的新手,我尝试使用一个对话框,提示用户在arraylist中插入一些数据。 我面临与getActivity相关的java类中的问题,因为我只使用java类扩展活动 public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Get the layout
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Get the layout inflater
LayoutInflater inflater = getActivity().getLayoutInflater();
// Inflate and set the layout for the dialog
// Pass null as the parent view because its going in the dialog layout
builder.setView(inflater.inflate(R.layout.dialog, null))
// Add action buttons
.setPositiveButton(R.string.Insert, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
// sign in the user ...
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
LoginDialogFragment.this.getDialog().cancel();
}
});
return builder.create();
}
这是我的XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:src="@drawable/ic_launcher"
android:layout_width="match_parent"
android:layout_height="64dp"
android:scaleType="center"
android:background="#FFFFBB33"
android:contentDescription="@string/app_name" />
<EditText
android:id="@+id/insert"
android:inputType="text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="4dp"
android:hint="@string/ItemName" />
</LinearLayout>
getActivity仅用于扩展片段的类,而不是用于扩展您应该使用的活动的应用程序。
getApplication/
getApplicationContext等。尝试以下方法:
AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
而不是
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
您需要一个活动上下文来显示对话框。其他一些答案建议的应用程序上下文将不起作用
在“活动”中,使用此选项引用该活动。如果代码位于内部类中,请使用YourActivityName.this将其范围限定到外部类实例。这不是java类,而是一个方法。问题出在哪里?请将错误日志放在此处。getactivity未被mainactivity定义,因为我的mainactivity仅扩展活动。如果我坚持在我的主要活动中扩展活动,我应该如何处理对话框?您在主活动中扩展活动是什么意思??我假设它正在扩展活动。但是我的LayoutFlater充气器=getApplication.GetLayoutFlater;出现了问题,我没有用对话框FragmentIt work清除,但我有另一个问题,那就是对话框中的取消按钮。setNegativeButtonR.string.cancel,new DialogInterface.OnClickListener{public void onClickDialogInterface dialog,int id{DialogFragment.this.getDialog.cancel;};当按钮单击处理程序运行时,对话框已经被取消。不需要在那里取消它。你的意思是忽略DialogFragment.this.getDialog.cancel;?并让它在onclick函数中为空。是的,你不需要它。