应用程序未启动,在android中使用imagebutton时崩溃
我刚刚开始用android开发我的第一个应用程序 这里我用了一个图像按钮 但当我尝试在设备中运行我的应用程序时,它并没有启动一个错误,错误显示在日志中 任何人都可以帮助我解决这个错误。提前谢谢。希望你的帮助 这是我使用的代码:应用程序未启动,在android中使用imagebutton时崩溃,android,Android,我刚刚开始用android开发我的第一个应用程序 这里我用了一个图像按钮 但当我尝试在设备中运行我的应用程序时,它并没有启动一个错误,错误显示在日志中 任何人都可以帮助我解决这个错误。提前谢谢。希望你的帮助 这是我使用的代码: ArraysActivity.java package com.me.array; //import com.sweans.pus.SingleListItem; //import com.sweans.pus.SecondScreen; //import com
ArraysActivity.java
package com.me.array;
//import com.sweans.pus.SingleListItem;
//import com.sweans.pus.SecondScreen;
//import com.me.array.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.AdapterView;
public class ArraysActivity extends Activity {
ListView listView;
private ImageButton mybtn;
ArrayAdapter<String> adapter;
String[] sujith =new String[]{ "The-Birth", "Menu", "Album",
"Events", "Blog", "Press", "Reservation", "MONOMANIA",
"Contact" };
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mybtn = (ImageButton)findViewById(R.id.imgbtn);
mybtn.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Intent nextScreen = new Intent(getApplicationContext(), ZActivity.class);
startActivity(nextScreen);
}
});
listView = (ListView) findViewById(R.id.mylist);
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, sujith);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
// Intent nextScreen = new Intent(getApplicationContext(), SingleListItem.class);
// startActivity(new Intent(action));
if(position == 0){
Intent i = new Intent(ArraysActivity.this, SingleListItem.class);
// passing variable
i.putExtra("my.package.dataToPass","new");
//i.putExtra( "int",position);
startActivity(i);
}
else if(position == 1){
Intent i = new Intent(ArraysActivity.this, ListSample.class);
startActivity(i);
}
else if(position == 2){
Intent i = new Intent(ArraysActivity.this, MyGridView.class);
startActivity(i);
}
else if(position == 4){
Intent i = new Intent(ArraysActivity.this, MessageList.class);
startActivity(i);
}
}
});
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- <ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="278dp"
android:scaleType="fitXY"
android:src="@drawable/home_page" /> -->
<ImageButton
android:id="@+id/imgbtn"
android:layout_width="fill_parent"
android:layout_height="278dp"
android:scaleType="fitXY"
android:src="@drawable/home_page"
android:contentDescription="@string/desc"/>
<ListView
android:id="@+id/mylist"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
Androidmanifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.me.array"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<application
android:icon="@drawable/icon_andro"
android:label="@string/app_name" >
<activity
android:name=".ArraysActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SingleListItem"></activity>
<activity android:name=".menu"></activity>
<activity android:name=".ListSample"></activity>
<activity android:name=".SeperatedListAdapter"></activity>
<activity android:name=".MyGridView"></activity>
<activity android:name=".Message"></activity>
<activity android:name=".MessageList"></activity>
<activity android:name=".BaseFeedParser"></activity>
<activity android:name=".SeparatedListAdapter"></activity>
<activity android:name=".RssHandler"></activity>
<activity android:name=".ZActivity"></activity>
</application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
ArraysActivity.java
包com.me.array;
//导入com.sweans.pus.SingleListItem;
//导入com.sweans.pus.SecondScreen;
//导入com.me.array.R;
导入android.app.Activity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.ImageButton;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.AdapterView;
公共类阵列活动扩展活动{
列表视图列表视图;
专用图像按钮mybtn;
阵列适配器;
String[]sujith=新字符串[]{“出生”、“菜单”、“相册”,
“活动”、“博客”、“新闻”、“预订”、“偏执狂”,
“接触”};
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mybtn=(ImageButton)findViewById(R.id.imgbtn);
mybtn.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
Intent nextScreen=newintent(getApplicationContext(),ZActivity.class);
startActivity(nextScreen);
}
});
listView=(listView)findViewById(R.id.mylist);
适配器=新阵列适配器(此,
android.R.layout.simple_list_item_1,android.R.id.text1,sujith);
setAdapter(适配器);
setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView AdapterView,视图视图,整型位置,长id){
//Intent nextScreen=newintent(getApplicationContext(),SingleListItem.class);
//startActivity(新意图(行动));
如果(位置==0){
意向i=新意向(ArraysActivity.this,SingleListItem.class);
//传递变量
i、 putExtra(“my.package.dataToPass”,“new”);
//i、 putExtra(“int”,位置);
星触觉(i);
}
否则如果(位置==1){
意图i=新意图(ArraysActivity.this,ListSample.class);
星触觉(i);
}
否则如果(位置==2){
Intent i=新Intent(ArraysActivity.this,MyGridView.class);
星触觉(i);
}
否则如果(位置==4){
意图i=新意图(ArraysActivity.this,MessageList.class);
星触觉(i);
}
}
});
}
}
main.xml
Androidmanifest.xml
日志cat在第36行显示一个NPE,即mybtn.setOnClickListener(新的OnClickListener(){)
我的日志猫是而不是匿名的onClikListener,可以这样尝试:
mybtn.setOnClickListener(this);
Context ctx; //define it as class variable
然后,在源代码的末尾,实现侦听器
public void onClick(View v)
{
//do the stuff you want here
}
顺便说一句,我会用“this”替换getApplicationContext(),当然只在这个版本中
我想应该是这样的
或者,您可能想这样尝试:
mybtn.setOnClickListener(this);
Context ctx; //define it as class variable
在onCreate中:
ctx=this;
将getApplicationContext()替换为ctx,我认为这就是为您提供空指针的原因。如果您注释掉有问题的块(第36到42行),它是否仍然崩溃?@TomDignan如何构建clean android项目。我很抱歉问这个问题。我是这里的新手。@user923370
build
clean…
在工具栏/menubar.give listView=(listView)findViewById(R.id.mylist);在imageButton onclik之前。之后进行清理和编译。你能为你的主.xml文件发布代码吗?