首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android提供了一个耳聋构造函数

Android提供了一个耳聋构造函数
EN

Stack Overflow用户
提问于 2022-09-29 07:05:55
回答 1查看 30关注 0票数 0

我的应用程序有问题。它已经在运行了,但现在我增加了蓝牙,从那以后页面不断崩溃。

所有10个类都有相同的结构,所有10个类都有相同的错误:

这个类应该提供一个默认的构造函数(没有参数的公共构造函数) (com.example.feuerwerkzndanlage.empfaenger_1_zuenden)

代码活动:

代码语言:javascript
复制
package com.example.feuerwerkzndanlage;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.concurrent.atomic.AtomicInteger;

public class empfaenger_1_zuenden extends AppCompatActivity{

    private final ConnectedThread mConnectedThread; // bluetooth background worker thread to send and receive data

    public empfaenger_1_zuenden(ConnectedThread mConnectedThread){
        this.mConnectedThread = mConnectedThread;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.empfaenger_1_zuenden);

        Context context = getApplicationContext();
        CharSequence back_txt = "Zurück!";
        CharSequence rot_txt = "Zünden!";
        CharSequence gruen_txt = "Reset!";
        int a = 0;
        AtomicInteger b = new AtomicInteger(0);
        AtomicInteger c = new AtomicInteger(0);
        AtomicInteger d = new AtomicInteger(0);
        AtomicInteger e = new AtomicInteger(0);
        AtomicInteger f = new AtomicInteger(0);
        int duration = Toast.LENGTH_SHORT;

        ImageView back = findViewById(R.id.back);
        Button zuenden1_1 = findViewById(R.id.btn_zuenden1_1);
        Button zuenden1_2 = findViewById(R.id.btn_zuenden1_2);
        Button zuenden1_3 = findViewById(R.id.btn_zuenden1_3);
        Button zuenden1_4 = findViewById(R.id.btn_zuenden1_4);
        Button zuenden1_5 = findViewById(R.id.btn_zuenden1_5);

        Button ruecksetzen = findViewById(R.id.btn_ruecksetzen);

        ImageView kanal_1_1 = findViewById(R.id.kanal1_1);
        ImageView kanal_1_2 = findViewById(R.id.kanal1_2);
        ImageView kanal_1_3 = findViewById(R.id.kanal1_3);
        ImageView kanal_1_4 = findViewById(R.id.kanal1_4);
        ImageView kanal_1_5 = findViewById(R.id.kanal1_5);

        back.setOnClickListener(view -> {
            Toast.makeText(context, back_txt, duration).show();
            startActivity(new Intent(empfaenger_1_zuenden.this, zuenden.class));
        });

        ruecksetzen.setOnClickListener(view -> {
            Toast.makeText(context, gruen_txt, duration).show();
            kanal_1_1.setImageResource(R.drawable.kanal_gruen);
            kanal_1_2.setImageResource(R.drawable.kanal_gruen);
            kanal_1_3.setImageResource(R.drawable.kanal_gruen);
            kanal_1_4.setImageResource(R.drawable.kanal_gruen);
            kanal_1_5.setImageResource(R.drawable.kanal_gruen);
            b.set(a + 1);
            c.set(a + 1);
            d.set(a + 1);
            e.set(a + 1);
            f.set(a + 1);
        });

        zuenden1_1.setOnClickListener(view -> {
            if (b.get() == 1) {
                Toast.makeText(context, rot_txt, duration).show();
                kanal_1_1.setImageResource(R.drawable.kanal_rot);
                b.set(0);

                if(mConnectedThread != null) //First check to make sure thread created
                    mConnectedThread.write("Kanal_1_1_Z");
            }
        });

        zuenden1_2.setOnClickListener(view -> {
            if (c.get() == 1) {
                Toast.makeText(context, rot_txt, duration).show();
                kanal_1_2.setImageResource(R.drawable.kanal_rot);
                c.set(0);

                if(mConnectedThread != null) //First check to make sure thread created
                    mConnectedThread.write("Kanal_1_2_Z");
            }
        });

        zuenden1_3.setOnClickListener(view -> {
            if (d.get() == 1) {
                Toast.makeText(context, rot_txt, duration).show();
                kanal_1_3.setImageResource(R.drawable.kanal_rot);
                d.set(0);

                if(mConnectedThread != null) //First check to make sure thread created
                    mConnectedThread.write("Kanal_1_3_Z");
            }
        });

        zuenden1_4.setOnClickListener(view -> {
            if (e.get() == 1) {
                Toast.makeText(context, rot_txt, duration).show();
                kanal_1_4.setImageResource(R.drawable.kanal_rot);
                e.set(0);

                if(mConnectedThread != null) //First check to make sure thread created
                    mConnectedThread.write("Kanal_1_4_Z");
            }
        });

        zuenden1_5.setOnClickListener(view -> {
            if (f.get() == 1) {
                Toast.makeText(context, rot_txt, duration).show();
                kanal_1_5.setImageResource(R.drawable.kanal_rot);
                f.set(0);

                if(mConnectedThread != null) //First check to make sure thread created
                    mConnectedThread.write("Kanal_1_5_Z");
            }
        });
    }
}

代码宣言

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.feuerwerkzndanlage">

    <uses-feature android:name="android.hardware.bluetooth" />
    <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />

    <permission android:name="android.permission.BLUETOOTH" android:label="BLUETOOTH" />
    <permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <permission android:name="android.permission.BLUETOOTH_CONNECT" />
    <permission android:name="android.permission.BLUETOOTH_SCAN" />

    <uses-permission android:name="android.permission.USE_BIOMETRIC" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/logo"
        android:label="@string/app_name"
        android:roundIcon="@drawable/logo"
        android:supportsRtl="true"
        android:theme="@style/Theme.Feuerwerkzündanlage">
        <activity
            android:name=".Musik_Auswahl"
            android:exported="false" />
        <activity
            android:name=".Main_Bluetooth"
            android:exported="false" />
        <activity
            android:name=".inArbeit"
            android:exported="false" />
        <activity
            android:name=".zeit_laden_1"
            android:exported="false" />
        <activity
            android:name=".zeit_speichern_auswahl"
            android:exported="false" />
        <activity
            android:name=".zeit_ruecksetzen"
            android:exported="false" />
        <activity
            android:name=".zeit_speichern_1"
            android:exported="false" />
        <activity
            android:name=".empfaenger_1"
            android:exported="false" />
        <activity
            android:name=".empfaenger_2"
            android:exported="false" />
        <activity
            android:name=".empfaenger_3"
            android:exported="false" />
        <activity
            android:name=".empfaenger_4"
            android:exported="false" />
        <activity
            android:name=".empfaenger_5"
            android:exported="false" />
        <activity
            android:name=".empfaenger_6"
            android:exported="false" />
        <activity
            android:name=".empfaenger_7"
            android:exported="false" />
        <activity
            android:name=".empfaenger_8"
            android:exported="false" />
        <activity
            android:name=".empfaenger_9"
            android:exported="false" />
        <activity
            android:name=".empfaenger_10"
            android:exported="false" />
        <activity
            android:name=".empfaenger_1_zuenden"
            android:exported="false" />
        <activity
            android:name=".empfaenger_2_zuenden"
            android:exported="false" />
        <activity
            android:name=".empfaenger_3_zuenden"
            android:exported="false" />
        <activity
            android:name=".empfaenger_4_zuenden"
            android:exported="false" />
        <activity
            android:name=".empfaenger_5_zuenden"
            android:exported="false" />
        <activity
            android:name=".empfaenger_6_zuenden"
            android:exported="false" />
        <activity
            android:name=".empfaenger_7_zuenden"
            android:exported="false" />
        <activity
            android:name=".empfaenger_8_zuenden"
            android:exported="false" />
        <activity
            android:name=".empfaenger_9_zuenden"
            android:exported="false" />
        <activity
            android:name=".empfaenger_10_zuenden"
            android:exported="false" />
        <activity
            android:name=".Achtung_Scharf"
            android:exported="false" />
        <activity
            android:name=".Test"
            android:exported="false" />
        <activity
            android:name=".Biometric_Authentication"
            android:exported="false" />
        <activity
            android:name=".test_arm"
            android:exported="false" />
        <activity
            android:name=".vorschlaege"
            android:exported="false" />
        <activity
            android:name=".gesp_feuerwerke"
            android:exported="false" />
        <activity
            android:name=".Auswahl_Planer"
            android:exported="false" />
        <activity
            android:name=".Planer_1"
            android:exported="false" />
        <activity
            android:name=".Planer_2"
            android:exported="false" />
        <activity
            android:name=".Planer_3"
            android:exported="false" />
        <activity
            android:name=".Planer_4"
            android:exported="false" />
        <activity
            android:name=".Planer_5"
            android:exported="false" />
        <activity
            android:name=".Planer_6"
            android:exported="false" />
        <activity
            android:name=".Planer_7"
            android:exported="false" />
        <activity
            android:name=".Planer_8"
            android:exported="false" />
        <activity
            android:name=".Planer_9"
            android:exported="false" />
        <activity
            android:name=".Planer_10"
            android:exported="false" />
        <activity
            android:name=".zuenden"
            android:exported="false" />
        <activity
            android:name=".Sidebar"
            android:exported="false" />
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
EN

回答 1

Stack Overflow用户

发布于 2022-09-29 13:50:26

因为您使用关键字final,所以

中的私有ConnectedThread mConnectedThread;// final关键字是一个常量。

  1. --没有重新命令为活动创建构造函数,不需要实例化它。activitys之间的通信是通过使用startActivityForResult().

startActivity()

意图it =新意图(FirstActivity.this,SecondActivity.class);it.putExtra(" data ","Hi is FirstAcitvity");//如果需要将一些数据传递给SecondAcrivity startActivity(it);

  1. ,蓝牙组件,您可以创建类似于BluetoothManager.java的东西,并从IntentService (线程安全)扩展。

公共类BluetoothMnager扩展了IntentService {公共静态最终字符串RESULT_RECEIVER = "RESULT_RECEIVER";公共静态最终字符串RESPONSE_CODE = 200;//做任何您需要的事情:覆盖受保护的无效onHandleIntent(@Nullable意图){ //声明结果接收方ResultReceiver receiver = intent.getParcelableExtra(RESULT_RECEIVER);String action = intent.getAction();Bundle b=新绑定();b.putString(“响应”,"data");receiver.send(RESPONSE_CODE,b);}

//活动方面

公共MainActivity扩展.{@覆盖受保护的无效onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState);Button bt =新按钮(此);bt.setText(“发送服务”);bt.setOnClickListener(新View.OnClickListener() {@覆盖公共void (视图)){IN意图it =新意图(MainActivity.this,BluetoothMnager.class);it.putExtra(BluetoothMnager.RESULT_RECEIVER,mReceiver);startService(it););

@重载受保护的onResume(){ //声明a ResultReceiver mReceiver =新的ResultReceiver(新的Handler()){ @Override void onReceiveResult(int resultCode,Bundle resultData) { super.onReceiveResult (resultCode,resultData);if (resultCode == 200){ String response = resultData.getString("response");Log.d(标记,“响应:+响应”);Toast.makeText(MainActivity.this,response,Toast.LENGTH_SHORT).show();}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73891534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档