07-30 21:02:39.260: ERROR/AndroidRuntime(7961): java.lang.NullPointerException
07-30 21:02:39.260: ERROR/AndroidRuntime(7961): at com.fttech.gameIT.shoppingClass$1.onClick(shoppingClass.java:45)
07-30 21:02:39.260: ERROR/AndroidRuntime(7961): at android.view.View.performClick(View.java:3110)
07-30 21:02:39.260: ERROR/AndroidRuntime(7961): at android.view.View$PerformClick.run(View.java:11928)
07-30 21:02:39.260: ERROR/AndroidRuntime(7961): at android.os.Handler.handleCallback(Handler.java:587)
这是我在启动另一个类时获得的代码扩展了Fragment {
编辑:添加了初始化
shopping_details_fragment shopping;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.shopping);
findIT = (Button)findViewById(R.id.findIT);
shop = (EditText)findViewById(R.id.item);
type = (RadioGroup)findViewById(R.id.console);
site = (RadioGroup)findViewById(R.id.shopping_group);
shopping = new shopping_details_fragment();
final Intent d = new Intent(this, shopping_details_fragment.class);
findIT.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getUserPreference();
shopping.loadUrl(url);// line 45
startActivity(d);
}
这是我试图启动的活动
public class shopping_details_fragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
//Return the view for our WebView
return(inflater.inflate(R.id.browserFrag,container, false));
}
public void loadUrl(String url){
((WebView)getView().findViewById(R.id.browser)).loadUrl(url);
}
}
编辑2:它现在给我一个错误
((WebView)getView().findViewById(R.id.browser)).loadUrl(url);
这是错误
07-30 22:34:42.820: ERROR/AndroidRuntime(9785): java.lang.NullPointerException
07-30 22:34:42.820: ERROR/AndroidRuntime(9785): at com.fttech.gameIT.shopping_details_fragment.loadUrl(shopping_details_fragment.java:21)
07-30 22:34:42.820: ERROR/AndroidRuntime(9785): at com.fttech.gameIT.shoppingClass$1.onClick(shoppingClass.java:50)
07-30 22:34:42.820: ERROR/AndroidRuntime(9785): at android.view.View.performClick(View.java:3110)
07-30 22:34:42.820: ERROR/AndroidRuntime(9785): at android.view.View$PerformClick.run(View.java:11928)
07-30 22:34:42.820: ERROR/AndroidRuntime(9785): at android.os.Handler.handleCallback(Handler.java:587)
编辑3:detials_fragment.xml这个xml持有带有id浏览器的WebView ......
<?xml version="1.0" encoding="utf-8"?>
<WebView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/browser"
android:layout_height="match_parent">
</WebView>
HERE正在购买XML,其中包含片段browserFrag
<?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"
>
<LinearLayout
android:name="com.fttech"
android:orientation="vertical"
android:layout_width="525dp" android:layout_height="match_parent" android:weightSum="1">
<LinearLayout android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:layout_width="match_parent" android:orientation="vertical">
<Button android:text="Find IT!" android:id="@+id/findIT" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
</LinearLayout>
<EditText android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/item"></EditText>
<TextView android:text="Pick Your Shopping Site" android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="21dip"> </TextView>
</LinearLayout>
<fragment android:layout_height="match_parent" android:id="@+id/browserFrag" android:name="com.fttech.gameIT.shopping_details_fragment" android:layout_width="match_parent"> </fragment>
</LinearLayout>
答案 0 :(得分:1)
我将疯狂地假设shoppingClass.java的第45行是:
shopping.loadUrl(url);
我也猜测shopping
未正确初始化。
编辑:如果用以下内容替换上述行,会有什么行为:
if (shopping == null) {
Toast.makeText(this, "shopping==null!", Toast.LENGTH_SHORT).show();
} else {
shopping.loadUrl(url);
}
如果您收到toast消息,那么您可能在代码中的其他位置为shopping
分配了null。如果你把写手表放在购物上,你的调试器会有所帮助。