我用2个布局,6个按钮和一个WebView创建了一个应用程序。 应用程序可以像书签一样,只是不在chrome中。 这些按钮在webview中打开一个网站,并设置按钮的文本。 但是,我所做的一切都是空的..
MainActivity
package link.link.link;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Button;
public class MainActivity extends ActionBarActivity {
public WebView mWB;
public Button mainBTN;
public Button oneBTN;
public Button twoBTN;
public Button threeBTN;
public Button fourBTN;
public Button fiveBTN;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWB = (WebView) findViewById(R.id.mWB);
WebSettings wST = mWB.getSettings();
wST.setJavaScriptEnabled(true);
mainBTN = (Button) findViewById(R.id.mainBTN);
mainBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setContentView(R.layout.activity_main);
}
});
oneBTN = (Button) findViewById(R.id.oneBTN);
oneBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setContentView(R.layout.hi);
//--------------------------------------------------------------------------------------------------
mWB.loadUrl("http://facebook.com/");
oneBTN.setText("Facebook");
//--------------------------------------------------------------------------------------------------
};
});
twoBTN = (Button) findViewById(R.id.twoBTN);
twoBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setContentView(R.layout.hi);
//--------------------------------------------------------------------------------------------------
mWB.loadUrl("http://facebook.com/");
twoBTN.setText("Facebook");
//--------------------------------------------------------------------------------------------------
}
});
threeBTN = (Button) findViewById(R.id.threeBTN);
threeBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setContentView(R.layout.hi);
//--------------------------------------------------------------------------------------------------
mWB.loadUrl("http://facebook.com/");
threeBTN.setText("Facebook");
//--------------------------------------------------------------------------------------------------
}
});
fourBTN = (Button) findViewById(R.id.fourBTN);
fourBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setContentView(R.layout.hi);
//--------------------------------------------------------------------------------------------------
mWB.loadUrl("http://facebook.com/");
fourBTN.setText("Facebook");
//--------------------------------------------------------------------------------------------------
}
});
fiveBTN = (Button) findViewById(R.id.fiveBTN);
fiveBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setContentView(R.layout.hi);
//--------------------------------------------------------------------------------------------------
mWB.loadUrl("http://facebook.com/");
fiveBTN.setText("Facebook");
//--------------------------------------------------------------------------------------------------
}
});
}
public void onBackPressed() {
new AlertDialog.Builder(this)
.setTitle("Gasis?")
.setMessage("Ako kliknis use edns sa gase")
.setNegativeButton(android.R.string.no, null)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
MainActivity.super.onBackPressed();
}
}).create().show();
}
}
activity_main.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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/oneBTN"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/twoBTN"
android:layout_below="@+id/oneBTN"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/threeBTN"
android:layout_below="@+id/twoBTN"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/fourBTN"
android:layout_below="@+id/threeBTN"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/fiveBTN"
android:layout_below="@+id/fourBTN"
android:layout_centerHorizontal="true" />
</RelativeLayout>
hi.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="oj deka linkavto"
android:id="@+id/mainBTN"
android:layout_gravity="center_horizontal" />
<WebView
android:layout_marginTop="0dp"
android:layout_width="match_parent"
android:layout_height="521dp"
android:id="@+id/mWB">
</WebView>
</LinearLayout>
它说我在一行上有一个java.lang.NullPointerException,我删除它然后它说另一行。 有人能指出我的问题吗?
编辑:我尝试了“什么是空指针异常,我该如何修复它?”并且我想出了我的问题,所以他们说如果我在创建对象之前初始化它会变为null,但在我的情况下,对象被初始化为不同的布局,这就是问题,我不知道如何尽管如此。 EDIT2: LOGCAT答案 0 :(得分:0)
您是否已设置 AndroidManifest.xml :
<uses-permission android:name="android.permission.INTERNET" />