点击图片按钮时,应用会一直停止

时间:2018-02-02 09:04:31

标签: java android xml

$ error in androidmonitor

02-02 14:22:48.870 3269-3269/com.example.applincatio.t E/AndroidRuntime: FATAL EXCEPTION: main
                                                                         Process: com.example.applincatio.t, PID: 3269
                                                                         java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.applincatio.t/com.example.applincatio.t.moddle}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.webkit.WebView.setWebChromeClient(android.webkit.WebChromeClient)' on a null object reference
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
                                                                             at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
                                                                             at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                             at android.os.Looper.loop(Looper.java:154)
                                                                             at android.app.ActivityThread.main(ActivityThread.java:6077)
                                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
                                                                          Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.webkit.WebView.setWebChromeClient(android.webkit.WebChromeClient)' on a null object reference
                                                                             at com.example.applincatio.t.moddle.onCreate(moddle.java:20)
                                                                             at android.app.Activity.performCreate(Activity.java:6664)
                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 
                                                                             at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) 
                                                                             at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                             at android.os.Looper.loop(Looper.java:154) 
                                                                             at android.app.ActivityThread.main(ActivityThread.java:6077) 
                                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 

$ main activity.java

package com.example.applincatio.t;

import android.content.Intent;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

import android.widget.ImageButton;
import android.widget.ImageView;

import static com.example.applincatio.t.R.*;
import static com.example.applincatio.t.R.id.moddle1;


public class MainActivity extends AppCompatActivity  implements  View.OnClickListener {
    ImageView moddle;
    ImageButton outlook;
    ImageButton contactus;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(layout.activity_main);

        moddle = (ImageView) findViewById(moddle1);
        ImageView moddle = (ImageView) findViewById(moddle1);
        moddle.setOnClickListener(this);

    }

    public void onClick(View view) {


        switch (view.getId()) {
            case moddle1:
                Intent imprintIntent = new Intent(MainActivity.this, moddle.class);
                imprintIntent.putExtra("webivew", moddle1);
                this.startActivity(imprintIntent);
                break;

            case id.outlook:
                Intent contactIntent = new Intent(MainActivity.this, moddle.class);
               // contactIntent.putExtra("webivewContact", outlook);
                this.startActivity(contactIntent);
                break;

            case id.contactus:
                Intent aboutIntent = new Intent(MainActivity.this, moddle.class);
                //aboutIntent.putExtra("webivewAbout", contactus);
                this.startActivity(aboutIntent);
                break;
        }
    }
}

$ moddle.java

package com.example.applincatio.t;


import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;



public class moddle extends AppCompatActivity {

    String url;
    WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {



        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

 webView = (WebView) findViewById(R.id.web_link);
                webView.clearCache(true);
                webView.clearHistory();
                webView.getSettings().setJavaScriptEnabled(true);

        Intent intent = this.getIntent();

        if (intent != null) {

            Bundle data = getIntent().getExtras();

            if (data.containsKey("webivew")) { //i have changed this param to match the intent passed
                url = data.getString("webivew");

            }

            if (data.containsKey("webivewContact")) {
                url = data.getString("webivewContact");
                               }

            if (data.containsKey("webivewAbout")) {
                url = data.getString("webivewAbout");

            }

webView.setWebChromeClient(new WebChromeClient() {

            public void onProgressChanged(WebView wView, int progress) {

              //  webViewActivity.setTitle("Loading...");
               // webViewActivity.requestWindowFeature(progress * 100);

                if(progress == 100) {
                  //  webViewActivity.setTitle(R.string.app_name);
                }
            }
        });
            webView.loadUrl(url);

        }
    }
}

$ activitymain.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:background="@drawable/p"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.applincatio.t.MainActivity"
    android:weightSum="1">

    <GridLayout
        android:layout_width="match_parent"
        android:rowCount="4"
        android:columnCount="2"
        android:layout_height="530dp"
        android:alignmentMode="alignMargins"
        android:columnOrderPreserved="false"
android:id="@+id/gridview"
        android:padding="14dp">



            <LinearLayout
                android:layout_gravity="center_horizontal|center_vertical"
                android:layout_margin="16dp"
                android:orientation="vertical"
                android:layout_width="wrap_content"

                android:layout_height="wrap_content">


                    <ImageView
                       android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                        android:layout_gravity="center"


                        android:id="@+id/moddle1"
                        android:src="@drawable/moddle"/>

                              <TextView
                                  android:layout_width="wrap_content"
                                  android:layout_height="wrap_content"
                                  android:text="MODDLE"
                                  android:textColor="#fff"
                                  android:textStyle="bold"

                                  android:textAppearance="@style/TextAppearance.AppCompat.Headline" />



            </LinearLayout>


            <LinearLayout
                android:layout_gravity="center_horizontal|center_vertical"
                android:layout_margin="16dp"
                android:orientation="vertical"
                android:layout_width="wrap_content"

                android:layout_height="wrap_content">
                <ImageButton
                    android:layout_width="96dp"
                    android:layout_height="139dp"

                    android:id="@+id/outlook"
                    android:layout_gravity="center"
                    android:src="@drawable/ou"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="OUTLOOK"
                    android:gravity="bottom"
                    android:textAlignment="center"
                    android:textColor="#ffffff"
                    android:textStyle="bold"

                    android:textAppearance="@style/TextAppearance.AppCompat.Headline" />


            </LinearLayout>


            <LinearLayout
                android:layout_gravity="center_horizontal|center_vertical"
                android:layout_margin="16dp"
                android:orientation="vertical"
                android:layout_width="wrap_content"

                android:layout_height="wrap_content">


                <ImageButton

                    android:layout_width="122dp"
                    android:layout_height="141dp"
                    android:layout_gravity="center"

                    android:id="@+id/contactus"

                    android:src="@drawable/cont"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="CONTACT US"
                    android:textSize="20dp"
                    android:textColor="#ffff"
                    android:textStyle="bold"

                    android:textAppearance="@style/TextAppearance.AppCompat.Headline" />



            </LinearLayout>


            <LinearLayout
                android:layout_gravity="center_horizontal|center_vertical"
                android:layout_margin="16dp"
                android:orientation="vertical"
                android:layout_width="wrap_content"

                android:layout_height="wrap_content">

                <ImageButton
                    android:layout_width="123dp"
                    android:layout_height="128dp"
                    android:onClick="onClick"
                    android:layout_gravity="center"
                    android:src="@drawable/vi"


                    android:id="@+id/visitus" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="48dp"
                    android:text="VISIT US"
                    android:gravity="bottom"
                    android:textAlignment="center"
                    android:textColor="#ffffff"
                    android:textStyle="bold"

                    android:textAppearance="@style/TextAppearance.AppCompat.Headline" />


            </LinearLayout>



    </GridLayout>

</LinearLayout>

当我运行应用程序时。它正在运行但是当我点击任何图像按钮时,应用程序会一直停止。我无法理解我所做的错误。在图像中你可以看到我的布局正在运行但是图像按钮不能正常工作 请任何人帮助我 提前谢谢

1 个答案:

答案 0 :(得分:0)

尝试下面的一个,

package com.example.applincatio.t;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;

public class moddle extends AppCompatActivity {

String url;
WebView webView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    webView = (WebView) findViewById(R.id.web_link);
    webView.clearCache(true);
    webView.clearHistory();
    webView.getSettings().setJavaScriptEnabled(true);

    Intent intent = this.getIntent();
    if (intent != null) {
        Bundle data = getIntent().getExtras();

        if (data.containsKey("webview")) {
            url = data.getString("webview");                
        }

        if (data.containsKey("webivewContact")) {
            url = data.getString("webivewContact");                
        }

        if (data.containsKey("webivewAbout")) {
            url = data.getString("webivewAbout");               
        }

      webView.setWebChromeClient(new WebChromeClient() {
          public void onProgressChanged(WebView wView, int progress) {

         //  webViewActivity.setTitle("Loading...");
           // webViewActivity.requestWindowFeature(progress * 100);

            if(progress == 100) {
              //  webViewActivity.setTitle(R.string.app_name);
            }
        }
    });

    url = "https://moodle.kluniversity.in/login/index.php";
    webView.loadUrl(url);

    }
  }
}

谢谢!