Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.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
Java 在android中单击imageview时,应用程序将强制关闭_Java_Android_Android Linearlayout - Fatal编程技术网

Java 在android中单击imageview时,应用程序将强制关闭

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

我在我的应用程序的所有页面中都有一个“菜单”图像视图,如果单击菜单,所有菜单项(如登录、主页、作业、关于)都将打开,如果我单击“关于”菜单项,应用程序将强制关闭,并在“菜单的OnClicklistener”上出现空指针异常,但其他菜单项没有此问题,请有人解决此问题吗

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); 
    } 
      }
    });