Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用可以将数据插入arraylist的对话框_Android - Fatal编程技术网

Android 如何使用可以将数据插入arraylist的对话框

Android 如何使用可以将数据插入arraylist的对话框,android,Android,我是android的新手,我尝试使用一个对话框,提示用户在arraylist中插入一些数据。 我面临与getActivity相关的java类中的问题,因为我只使用java类扩展活动 public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Get the layout

我是android的新手,我尝试使用一个对话框,提示用户在arraylist中插入一些数据。 我面临与getActivity相关的java类中的问题,因为我只使用java类扩展活动

 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函数中为空。是的,你不需要它。