Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
应用程序未启动,在android中使用imagebutton时崩溃_Android - Fatal编程技术网

应用程序未启动,在android中使用imagebutton时崩溃

应用程序未启动,在android中使用imagebutton时崩溃,android,Android,我刚刚开始用android开发我的第一个应用程序 这里我用了一个图像按钮 但当我尝试在设备中运行我的应用程序时,它并没有启动一个错误,错误显示在日志中 任何人都可以帮助我解决这个错误。提前谢谢。希望你的帮助 这是我使用的代码: ArraysActivity.java package com.me.array; //import com.sweans.pus.SingleListItem; //import com.sweans.pus.SecondScreen; //import com

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

这里我用了一个图像按钮

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

任何人都可以帮助我解决这个错误。提前谢谢。希望你的帮助

这是我使用的代码:

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文件发布代码吗?