当前位置: 代码迷 >> java >> 为什么在添加按钮单击事件时不幸地停止了消息?
  详细解决方案

为什么在添加按钮单击事件时不幸地停止了消息?

热度:19   发布时间:2023-07-17 21:00:39.0

没有按钮代码它工作正常。 我在 LogCat 中没有看到任何内容。

这是 MainActivity.java 代码:

package com.test.webservertest;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.support.v7.app.ActionBarActivity;
import android.util.AndroidRuntimeException;
import android.util.Xml;
import android.view.Menu;
import android.view.MenuItem;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.content.Context;
import android.view.View.OnClickListener;

import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.util.EncodingUtils;
import org.json.JSONObject;
import org.json.JSONTokener;

import java.io.DataOutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.Locale;
import java.net.URLConnection;

import java.net.HttpURLConnection;
import java.io.*;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.logging.Logger;
import android.widget.Button;


public class MainActivity extends ActionBarActivity
{
    private static final int MY_DATA_CHECK_CODE = 0;
    public static MainActivity currentActivity;
    TextToSpeech mTts;
    private String targetURL;
    private String urlParameters;
    private Button btnClick;
    private String clicking = "clicked";

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setContentView(new SingleTouchEventView(this, null));

        addListenerOnButton();

        currentActivity = this;

        initTTS();


    }

    public void addListenerOnButton() {

        btnClick = (Button) findViewById(R.id.checkipbutton);

        btnClick.setOnClickListener(new OnClickListener()
        {

            @Override
            public void onClick(View arg0)
            {

                Intent browserIntent =
                        new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.mkyong.com"));
                startActivity(browserIntent);

            }

        });

    }

在布局中:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin"
                android:paddingBottom="@dimen/activity_vertical_margin"
                tools:context=".MainActivity">

    <TextView
        android:text="WEBSERVER"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:textSize="50dp"
        android:textColor="#FFF"
        android:id="@+id/textView"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Check Ip"
        android:id="@+id/checkipbutton"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"/>

</RelativeLayout>

如果我正在调用该方法: addListenerOnButton(); 我在 android 上收到消息:不幸的是已停止,然后程序关闭。 如果我没有调用 addListenerOnButton(); 然后程序将继续正常工作。

同样在运行程序时,如果不调用 addListenerOnButton(); 我在屏幕上根本看不到我在布局设计器中添加的按钮。

如果您注释掉对 setContentView 的第二次调用它可能会工作

 setContentView(R.layout.activity_main);
 //setContentView(new SingleTouchEventView(this, null)); 

如果你想使用

单点触摸事件视图

考虑将其添加到您的 activity_main 布局中

  相关解决方案