当前位置: 首页 > 知识库问答 >
问题:

(Android Studio Java)FAB OnClick警报对话框导致应用程序崩溃

谢财
2023-03-14

以下是活动的主要代码:

<?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>

这是我的主活动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();
        }
    });

    }
}

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

共有1个答案

籍弘伟
2023-03-14

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

>

  • 创建一个单独的. xlm布局文件为对话框.与你编辑文本和一些确定和取消按钮。

    在晶圆厂的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();
    

    这篇文章也可以帮助你

    如何在对话框中创建编辑文本框

  •  类似资料:
    • 问题内容: 我正在尝试创建一个node.js应用程序, 导致我的程序崩溃。节点说 ReferenceError:警报未定义 然后退出。我可以在常规html页面上运行javascript时使用该函数,因此我不知所措,这是为什么…这是我必须与node.js一起使用的单独模块吗? 问题答案: 该功能是浏览器对象的属性。它实际上不是JavaScript的一部分;它只是该环境中JavaScript代码可用的

    • 我正在制作一个跳棋游戏,下面的代码导致应用程序在运行时没有响应对话框。我如何使代码高效和删除Anr对话框。

    • 这里是Android开发者新手。我在MainActivity中使用recyclerview,应用程序不断崩溃。 任何帮助都将受到赞赏! 编辑:对不起,我是新来的。我已经附加了Logcat。和其他xml文件。谢谢 这是我的代码: 列出你的布局。xml: activity_main.xml: } ProductAdapter。java类: } Logcat: 致命异常:主进程:e.wolverine2

    • 我正在使用新的JavaFX Alert类(Java1.8_40),并尝试在exibition文本中使用HTML标记,但到目前为止还没有成功。下面是我正在尝试做的一个例子。 有没有人知道这是不是真的可能,给我举个例子? 提前道谢。

    • 我正在使用内置于Web View的Android开发浏览器。其中我面临的一个问题是,当我访问http://crashmybrowser.com测试浏览器上的选项卡崩溃时,我的整个浏览器应用程序都会崩溃。但是,当在chrome或Opera上进行相同的测试时,这些浏览器会在崩溃中幸存下来,并且只有特定的选项卡崩溃是由于访问上述网站而预期的结果。有人能帮助理解我如何在使用Webview的浏览器上处理此崩

    • 问题内容: 我正在开发一个Android 3.1应用程序,该应用程序使用USB主机模式通过USB上的MIDI与我的键盘(Korg M3)进行通信。这是在装有Android 4.0.3的Xoom上运行的。我可以通过USB接收MIDI消息而没有任何问题,但是将音符数据发送回键盘的效果是好坏参半,延迟半秒钟后便会频繁崩溃。 这是我在点击操作栏上的按钮发送注释时不断遇到的错误: E / dalvikvm(