gpt4 book ai didi

java - Android应用程序错误: "unfotunatley Application has stopped"

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

我是android初学者,正在编写简单的程序来将设备的响铃状态更改为静音,反之亦然以下是我的代码和错误日志似乎错误日志给出了确切的错误消息,但我是真的无法得到它..请帮助我

错误日志

10-14 00:01:34.964: E/AndroidRuntime(771): FATAL EXCEPTION: main
10-14 00:01:34.964: E/AndroidRuntime(771): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.silentmodetoggle/com.example.silentmodetoggle.MainActivity}: java.lang.ClassCastException: android.widget.ImageView cannot be cast to android.widget.Button
10-14 00:01:34.964: E/AndroidRuntime(771): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
10-14 00:01:34.964: E/AndroidRuntime(771): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
10-14 00:01:34.964: E/AndroidRuntime(771): at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-14 00:01:34.964: E/AndroidRuntime(771): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
10-14 00:01:34.964: E/AndroidRuntime(771): at android.os.Handler.dispatchMessage(Handler.java:99)
10-14 00:01:34.964: E/AndroidRuntime(771): at android.os.Looper.loop(Looper.java:137)
10-14 00:01:34.964: E/AndroidRuntime(771): at android.app.ActivityThread.main(ActivityThread.java:5041)
10-14 00:01:34.964: E/AndroidRuntime(771): at java.lang.reflect.Method.invokeNative(Native Method)
10-14 00:01:34.964: E/AndroidRuntime(771): at java.lang.reflect.Method.invoke(Method.java:511)
10-14 00:01:34.964: E/AndroidRuntime(771): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
10-14 00:01:34.964: E/AndroidRuntime(771): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
10-14 00:01:34.964: E/AndroidRuntime(771): at dalvik.system.NativeStart.main(Native Method)
10-14 00:01:34.964: E/AndroidRuntime(771): Caused by: java.lang.ClassCastException: android.widget.ImageView cannot be cast to android.widget.Button
10-14 00:01:34.964: E/AndroidRuntime(771): at com.example.silentmodetoggle.MainActivity.setButtonCliclListener(MainActivity.java:34)
10-14 00:01:34.964: E/AndroidRuntime(771): at com.example.silentmodetoggle.MainActivity.onCreate(MainActivity.java:26)
10-14 00:01:34.964: E/AndroidRuntime(771): at android.app.Activity.performCreate(Activity.java:5104)
10-14 00:01:34.964: E/AndroidRuntime(771): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
10-14 00:01:34.964: E/AndroidRuntime(771): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
10-14 00:01:34.964: E/AndroidRuntime(771): ... 11 more

Java 文件

    public class MainActivity extends Activity 
{
private AudioManager audio;
private boolean issilent ;
ImageView img;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setButtonCliclListener();
audio= (AudioManager) getSystemService(AUDIO_SERVICE);
checkifsilent();
setButtonCliclListener();

}
private void setButtonCliclListener()
{
Button toggle= (Button) findViewById(R.id.on_icon);
toggle.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
if(issilent)
{
audio.setRingerMode(AudioManager.RINGER_MODE_SILENT);
issilent=true;
}
else
{
audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
issilent= false;
}
}
});
toggleui();

}


public void checkifsilent()
{
int ringermode= audio.getRingerMode();
if(ringermode== AudioManager.RINGER_MODE_SILENT)
{
issilent=true;
}
else
{issilent=false; }
}

private void toggleui()
{
img= (ImageView) findViewById(R.id.on_icon);
Drawable newimg;
if(issilent)
{
newimg=getResources().getDrawable(R.drawable.off);
}
else
{
newimg= getResources().getDrawable(R.drawable.on);
}

img.setImageDrawable(newimg);
}

@Override
public void onResume()
{
super.onResume();
checkifsilent();
toggleui();
}

}

XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context=".MainActivity" >

<ImageView
android:id="@+id/on_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/on" />

<Button
android:id="@+id/Toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Toggle Mode" />

</LinearLayout>

最佳答案

提示是,您在按钮引用中没有使用正确的 ID。

由于您是初学者,提示比给您简单的答案要有意义得多。

关于java - Android应用程序错误: "unfotunatley Application has stopped",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19351732/

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