gpt4 book ai didi

android - 在 android 中使用图像按钮时,应用程序无法启动并崩溃

转载 作者:太空狗 更新时间:2023-10-29 15:18:55 28 4
gpt4 key购买 nike

我刚开始在 android 中开发我的第一个应用程序。

这里我使用了一个图片按钮。

但是当我尝试在设备中运行我的应用程序时,它没有启动,日志 cat 中显示错误。

谁能帮我解决这个错误。提前致谢。希望得到你的帮助。

这是我使用的代码:

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>

日志猫在第 36 行显示 NPE,即 mybtn.setOnClickListener(new OnClickListener(){。

我的日志猫是enter image description here

最佳答案

代替匿名的 onClikListener,像这样尝试:

mybtn.setOnClickListener(this);

然后,在你的源代码的最后,实现监听器,

public void onClick(View v)
{
//do the stuff you want here
}

顺便说一句,我会将 getApplicationContext() 替换为“this”,当然只在这个版本中。

我认为它应该以这种方式工作。

或者,您可能想这样尝试:

Context ctx; //define it as class variable

在onCreate中:

ctx=this;

用 ctx 替换你的 getApplicationContext(),我认为这就是给你 NullPointer 的东西。

关于android - 在 android 中使用图像按钮时,应用程序无法启动并崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9954644/

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