Android stdio调试程序闪退或者报错:"xxx keeps stopping"解决方案
16lz
2021-01-23
Android studio调试程序闪退或者报错:"xxx keeps stopping"解决方案
初入安卓,写程序的途中遇到了好几次调试闪退,研究之后都成功解决,以此发文记录一下。
一.方法冲突
MainActivity.java
package com.example.testdemo;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //添加跳转事件 Button btn = (Button) findViewById(R.id.list_view_vertical_stander); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent it = new Intent(); it.setClass(MainActivity.this,SecondActivity.class); startActivity(it); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { //加载建好的菜单xml文件 getMenuInflater().inflate(R.menu.menu,menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { //拿到菜单每项id,然后 switch判断具体是哪个菜单项,然后写点击后的具体操作 int itemId=item.getItemId(); switch (item.getItemId()){ case R.id.list_view_vertical_stander: Toast.makeText(MainActivity.this,"您选择查看南部地区省长列表",Toast.LENGTH_LONG).show(); break; case R.id.list_view_vertical_reverse: Toast.makeText(MainActivity.this,"您选择查看南部地区人大常委列表",Toast.LENGTH_LONG).show(); break; case R.id.list_view_horizontal_stander: Toast.makeText(MainActivity.this,"您选择查看南部地区书记列表",Toast.LENGTH_LONG).show(); break; case R.id.list_view_horizontal_reverse: Toast.makeText(MainActivity.this,"您选择查看南部地区行政专员列表", Toast.LENGTH_LONG).show(); break; case R.id.grid_view_vertical_stander: Toast.makeText(MainActivity.this,"您选择查看中部地区省长列表",Toast.LENGTH_LONG).show(); break; case R.id.grid_view_vertical_reverse: Toast.makeText(MainActivity.this,"您选择查看中部地区人大常委列表",Toast.LENGTH_LONG).show(); break; case R.id.grid_view_horizontal_stander: Toast.makeText(MainActivity.this,"您选择查看中部地区书记列表",Toast.LENGTH_LONG).show(); break; case R.id.grid_view_horizontal_reverse: Toast.makeText(MainActivity.this,"您选择查看中部地区行政专员",Toast.LENGTH_LONG).show(); break; case R.id.stagger_view_vertical_stander: Toast.makeText(MainActivity.this,"您选择查看北部地区省长列表",Toast.LENGTH_LONG).show(); break; case R.id.stagger_view_vertical_reverse: Toast.makeText(MainActivity.this,"您选择查看北部地区人大常委列表",Toast.LENGTH_LONG).show(); break; case R.id.stagger_view_horizontal_stander: Toast.makeText(MainActivity.this,"您选择查看北部地区书记列表",Toast.LENGTH_LONG).show(); break; case R.id.stagger_view_horizontal_reverse: Toast.makeText(MainActivity.this,"您选择查看北部地区行政专员",Toast.LENGTH_LONG).show(); break; } return super.onOptionsItemSelected(item); }}
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="南部地区干部" android:id="@+id/list_view"> <menu> <item android:title="省长" android:id="@+id/list_view_vertical_stander"/> <item android:title="人大常委" android:id="@+id/list_view_vertical_reverse"/> <item android:title="书记" android:id="@+id/list_view_horizontal_stander"/> <item android:title="行政专员" android:id="@+id/list_view_horizontal_reverse"/> menu> item> <item android:title="中部地区干部" android:id="@+id/grid_view"> <menu> <item android:title="省长" android:id="@+id/grid_view_vertical_stander"/> <item android:title="人大常委" android:id="@+id/grid_view_vertical_reverse"/> <item android:title="书记" android:id="@+id/grid_view_horizontal_stander"/> <item android:title="行政专员" android:id="@+id/grid_view_horizontal_reverse"/> menu> item> <item android:title="北部地区干部" android:id="@+id/stagger_view"> <menu> <item android:title="省长" android:id="@+id/stagger_view_vertical_stander"/> <item android:title="人大常委" android:id="@+id/stagger_view_vertical_reverse"/> <item android:title="书记" android:id="@+id/stagger_view_horizontal_stander"/> <item android:title="行政专员" android:id="@+id/stagger_view_horizontal_reverse"/> menu> item>menu>
以下是效果图,一个简单的二级菜单页,点击能显示你选择了什么item。
然后我又新建了第二个页面准备让他实现跳转,就在第一个页面的**onCreate()**方法中绑定了跳转事件,加入如下代码。
//添加跳转事件 Button btn = (Button) findViewById(R.id.list_view_vertical_stander); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent it = new Intent(); it.setClass(MainActivity.this,SecondActivity.class); startActivity(it); } });
问题来了,然后开始调试,程序就闪退——“xxx keeps stopping”
经检查后发现,是onOptionsItemSelected()方法和我onCreate()方法产生冲突,实现了同一个点击事件!!
只要把onCreate()方法中的点击跳转事件放到同一个事件即可。
二.参数类型不符
例如想给某个textView的text属性赋值调用 textView1.setText(xxx) 方法,其中的xxx必须为指定参数类型String,否则程序也会闪退。
更多相关文章
- Android OpenGL库函数列表
- Android仿QQ消息列表ListView滑动删除效果
- Android:BaseMultiItemQuickAdapter打造嵌套/多级列表
- Android 列表之分组ListView
- android dpi换算以及常用分辨率列表
- Android 自定义分享列表ACTION_SEND
- Android | activity之间传递列表,以listview显示
- android最近任务列表,删除某个应用操作
- Android 的res/values/colors自定义颜色列表和注释表及布局文件