Java 在android中单击imageview时,应用程序将强制关闭
我在我的应用程序的所有页面中都有一个“菜单”图像视图,如果单击菜单,所有菜单项(如登录、主页、作业、关于)都将打开,如果我单击“关于”菜单项,应用程序将强制关闭,并在“菜单的OnClicklistener”上出现空指针异常,但其他菜单项没有此问题,请有人解决此问题吗Java 在android中单击imageview时,应用程序将强制关闭,java,android,android-linearlayout,Java,Android,Android Linearlayout,我在我的应用程序的所有页面中都有一个“菜单”图像视图,如果单击菜单,所有菜单项(如登录、主页、作业、关于)都将打开,如果我单击“关于”菜单项,应用程序将强制关闭,并在“菜单的OnClicklistener”上出现空指针异常,但其他菜单项没有此问题,请有人解决此问题吗 public class About extends Activity { LinearLayout line1, line2; ImageView menu; @Override public void onCreate(Bun
public class About extends Activity {
LinearLayout line1, line2;
ImageView menu;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
menu.setOnClickListener(new View.OnClickListener() {
ImageView menu = (ImageView)findViewById(R.id.menu);
public void onClick(View v) {
menu.setVisibility(View.VISIBLE);
// TODO Auto-generated method stub
line1.setVisibility(View.VISIBLE);
if (line2.getVisibility() == View.INVISIBLE || line2.getVisibility() == View.GONE) {
line2.setVisibility(View.VISIBLE); }
else {
line2.setVisibility(View.INVISIBLE);
}
}
});
ImageView home = (ImageView) findViewById(R.id.home);
home.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
startActivity(new Intent(About.this, Home.class));
}
});
ImageView jobs = (ImageView) findViewById(R.id.jobs);
jobs.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
startActivity(new Intent(About.this, Jobs.class));
}
});
ImageView log = (ImageView) findViewById(R.id.log);
log.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
startActivity(new Intent(About.this, Login.class));
}
});
ImageView about = (ImageView) findViewById(R.id.about);
about.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
startActivity(new Intent(getApplicationContext(), About.class));
}
});
}
XML文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black" >
<LinearLayout
android:id="@+id/ll1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/black"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true">
<ImageView
android:id="@+id/menu"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/menu" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll2"
android:layout_width="199dp"
android:layout_height="wrap_content"
android:background="@color/black"
android:layout_toRightOf="@+id/ll1"
android:visibility="gone"
>
<ImageView
android:id="@+id/about"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_above="@+id/textView1"
android:layout_toLeftOf="@+id/jobs"
android:src="@drawable/about" />
<ImageView
android:id="@+id/jobs"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/jobs" />
<ImageView
android:id="@+id/log"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/log" />
<ImageView
android:id="@+id/home"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/home" />
</LinearLayout>
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="50dip"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:background="@color/white"
android:textColor="@color/white"/>
<TextView
android:id="@+id/textView4"
android:layout_width="match_parent"
android:layout_height="710dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:layout_marginTop="46dp"
android:text="@string/AboutPage"
android:textColor="@color/white" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/ll1"
android:layout_centerHorizontal="true"
android:layout_marginTop="26dp"
android:text="@string/WelcometoRebuixcom"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/white" />
您应该移动代码
ImageView menu = (ImageView)findViewById(R.id.menu);
以前
menu.setOnClickListener(new View.OnClickListener() {}
试试这个
ImageView menu = (ImageView)findViewById(R.id.menu);
menu.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {............
你应该把
ImageView menu = (ImageView)findViewById(R.id.menu);
之前
menu.setOnClickListener
看看这些代码行,第二行是导致强制关闭的原因,因为菜单是空的
就这样交换吧
menu = (ImageView)findViewById(R.id.menu);
menu.setOnClickListener(new View.OnClickListener() {
更新:
您正在声明ImageView菜单代码>
现在是第二行,menu.setOnClickListener(新视图.OnClickListener(){
如果不定义ImageView菜单
,您将setOnCLickListener()
设置到它,这将导致NullPointerException
因此,您必须在声明后定义ImageView菜单
像menu=(ImageView)findviewbyd(R.id.menu);
只需阅读基本Android编程和核心Java教程,了解如何声明和定义对象和成员变量。因为我认为您的编程概念很差。在单击listener之前初始化您的imageview,如下所示:
ImageView menu=(ImageView)findviewbyd(R.id.menu);logcat说什么?强制关闭通常提示抛出异常。请在此处发布您的logcat错误
menu = (ImageView)findViewById(R.id.menu);
menu.setOnClickListener(new View.OnClickListener() {
ImageView menu = (ImageView)findViewById(R.id.menu); <<---- Here
menu.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
menu.setVisibility(View.VISIBLE);
// TODO Auto-generated method stub
line1.setVisibility(View.VISIBLE);
if (line2.getVisibility() == View.INVISIBLE || line2.getVisibility() == View.GONE) {
line2.setVisibility(View.VISIBLE); }
else {
line2.setVisibility(View.INVISIBLE);
}
}
});