gpt4 book ai didi

java - (Android Studio Java) FAB OnClick 警报对话框使应用程序崩溃

转载 作者:行者123 更新时间:2023-12-01 17:54:01 26 4
gpt4 key购买 nike

这是activity_main代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:gravity="center"
android:textSize="36sp"
android:textColor="@color/colorPrimary"
android:text="To Do"
android:layout_marginTop="45dp"
android:fontFamily="@font/montserratlight"/>

<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/listView"
android:layout_marginTop="126dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp">
</ListView>

<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="50dp"
android:src="@drawable/plussymbol" />



</RelativeLayout>

这是我的 MainActivity Java 代码:

package com.geoff.productivitywatch;

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

int clickCounter = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list = (ListView) findViewById(R.id.listView);

final ArrayList<String> todo = new ArrayList<>();
todo.add("Swipe Up");

ArrayAdapter adapter = new ArrayAdapter(this, R.layout.tododesign, todo);
list.setAdapter(adapter);

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Here is where the pop-up box code goes
final EditText todoEditText = new EditText(getApplicationContext());
AlertDialog dialog = new AlertDialog.Builder(getApplicationContext())
.setTitle("New Task")
.setMessage("What next?")
.setView(todoEditText)
.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Add Task to listview
String task = String.valueOf(todoEditText.getText());
todo.add("" + task);
}
})
.setNegativeButton("Cancel", null)
.create();
dialog.show();
}
});

}
}

我尝试编写一种方法,在该方法中单击 float 操作按钮会弹出一个对话框警报框,您可以在其中编辑文本,然后将其添加到 ListView 中。 Android Studio 在我的代码中没有看到错误,但是当我在 Android 设备上测试应用程序时,一旦单击 float 操作按钮,应用程序就会崩溃。但是,我知道这不是我的设备的问题,因为我之前已经成功测试过多次,只是当我添加 AlertDialog 方法时它才开始崩溃。我认为我的上下文可能出了问题,但是我已将它们更改为我能想到的所有变体,但没有帮助。

最佳答案

IDK 导致崩溃的实际原因是什么,因为您没有共享 logcat,但我注意到您试图实现的任何目标都是通过对话框而不是通过 AlertDilaog 实现的 这是我的解释:

  1. 为对话框创建一个单独的 .xlm 布局文件。您可以编辑文本以及一些“确定”和“取消”按钮。

  2. 在 fab 的 onClick 中创建/膨胀并显示对话框

        // Create a custom dialog object

    final Dialog dialog = new Dialog(MainActivity.this);
    // Include dialog.xml file
    dialog.setContentView(R.layout.your_dialg_layout);
    // Set dialog title
    dialog.setTitle("Custom Dialog");

    // set values for custom dialog components - text, image or button

    EditText todoEditText = dialog.findViewById(R.id.your_edit_text);

    Button mPositivButton = dialog.findViewById(R.id.your_yes_button);
    Button mNegativeButton = dialog.findViewById(R.id.your_cancle_button);

    mPositivButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    String task = String.valueOf(todoEditText.getText());
    todo.add("" + task);
    dialog.dismiss();
    }
    });
    mNegativeButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    dialog.dismiss();
    }
    });

    dialog.show();
  3. 这篇文章也可以帮助您

    How to make a edittext box in a dialog

关于java - (Android Studio Java) FAB OnClick 警报对话框使应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60750078/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com