我正在使用 android Tablet Devices 。在那,我有两个布局,如布局1和布局2。在我的平板电脑中,我在屏幕的前半部分设置了一个布局(布局1),在屏幕的后半部分设置了第二个(布局)。我的布局布局1有一个 ImageView。如果我单击该 Imageview ,我已经在 xml 中设计的布局必须替换现有的布局1。
我试过这样:
package com.example.androidoverlapp;
import android.os.Bundle;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class MainActivity extends Activity implements OnClickListener {
ImageView i;LinearLayout l;View viewToLoad;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.homepage);
i=(ImageView)findViewById(R.id.gprs);
l=(LinearLayout)findViewById(R.id.homepageoverlappable);
i.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
l.removeAllViews();
viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.activity_main, null);
l.addView(viewToLoad);
}
}
但它强制关闭。
Logcat 输出:
03-13 16:04:41.461: I/Process(309): Sending signal. PID: 309 SIG: 9
03-13 16:05:53.056: D/dalvikvm(331): GC freed 652 objects / 53680 bytes in 145ms
03-13 16:05:58.796: D/AndroidRuntime(331): Shutting down VM
03-13 16:05:58.826: W/dalvikvm(331): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
03-13 16:05:58.826: E/AndroidRuntime(331): Uncaught handler: thread main exiting due to uncaught exception
03-13 16:05:58.866: E/AndroidRuntime(331): java.lang.NullPointerException
03-13 16:05:58.866: E/AndroidRuntime(331): at android.view.LayoutInflater.from(LayoutInflater.java:171)
03-13 16:05:58.866: E/AndroidRuntime(331): at com.example.androidoverlapp.MainActivity.onClick(MainActivity.java:28)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.view.View.performClick(View.java:2364)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.view.View.onTouchEvent(View.java:4179)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.view.View.dispatchTouchEvent(View.java:3709)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-13 16:05:58.866: E/AndroidRuntime(331): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
03-13 16:05:58.866: E/AndroidRuntime(331): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
03-13 16:05:58.866: E/AndroidRuntime(331): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.os.Handler.dispatchMessage(Handler.java:99)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.os.Looper.loop(Looper.java:123)
03-13 16:05:58.866: E/AndroidRuntime(331): at android.app.ActivityThread.main(ActivityThread.java:4363)
03-13 16:05:58.866: E/AndroidRuntime(331): at java.lang.reflect.Method.invokeNative(Native Method)
03-13 16:05:58.866: E/AndroidRuntime(331): at java.lang.reflect.Method.invoke(Method.java:521)
03-13 16:05:58.866: E/AndroidRuntime(331): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
03-13 16:05:58.866: E/AndroidRuntime(331): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
03-13 16:05:58.866: E/AndroidRuntime(331): at dalvik.system.NativeStart.main(Native Method)
03-13 16:05:58.916: I/dalvikvm(331): threadid=7: reacting to signal 3
03-13 16:05:58.916: E/dalvikvm(331): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
03-13 16:06:00.739: I/Process(331): Sending signal. PID: 331 SIG: 9
请有人告诉我如何解决这个问题?