2011-09-16 60 views
1

嗨,这是我的自定义视图,我收到空指针异常,当我设置点击监听器。Android在布局上点击监听器

public class PestButtons extends AbsoluteLayout{ 

    private LayoutInflater inflater; 

    private OnClickListener screenshotOnClickListener = new OnClickListener() { 
     public void onClick(View v) { 
     //  getContext().startActivity(new Intent(getContext(), ScreenshotActivity.class)); 
     Log.i("a", "a"); 
     } 
    }; 


    public PestButtons(Context context, AttributeSet attrs) { 
     super(context, attrs); 

     inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     inflater.inflate(R.layout.pestbuttons, this,true); 
     ImageButton img = (ImageButton) this.findViewById(R.id.reportListBtn); 
       img.setOnClickListener(screenshotOnClickListener); 

    } 




} 

的XML:

<?xml version="1.0" encoding="UTF-8"?> 



<merge xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 


    <ImageButton id="@+id/reportListBtn" 
    android:src="@drawable/reportlist" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_x="5px" 
    android:layout_y="20px" 

/> 



</merge> 

我的使用率布局:

<?xml version="1.0" encoding="utf-8"?> 
<AbsoluteLayout 
    android:id="@+id/main" 

android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android" 
> 

<com.AgricultureTrading.PestButtons 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" /> 

<TextView 
android:id="@+id/err" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:textColor="#ffff0000" 
android:layout_x="320px" 
android:layout_y="25px" 

/> 

<TextView 
android:id="@+id/weather" 
android:layout_width="260px" 
android:layout_height="wrap_content" 
android:layout_x="140px" 
android:layout_y="60px" 
/> 

<ImageView 
android:id="@+id/loaderImageView" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_x="395px" 
android:layout_y="60px" 
/> 

<Button 
android:id="@+id/playBtn" 
android:layout_width="93px" 
android:layout_height="wrap_content" 
android:text="Play sound" 
android:layout_x="140px" 
android:layout_y="120px" 
android:onClick="playBtn_click" 
/> 


<ImageButton 
android:id="@+id/userimage" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_x="150px" 
android:layout_y="5px" 
android:onClick="changeimage_click" 
/> 

<TextView 
android:id="@+id/weatherLbl" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="TextView" 
android:layout_x="140px" 
android:layout_y="96px" 
/>  
</AbsoluteLayout> 

错误日志:

09:51:56.153 717 com.AgricultureTrading ERROR AndroidRuntime致命异常:主要 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime java.lang.RuntimeE xception:无法启动活动ComponentInfo无法启动活动ComponentInfo {com.AgricultureTrading/com.AgricultureTrading.ProfileActivity}文件行#68:错误膨胀类com.AgricultureTrading.PestButtons 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1815) 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1831) 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime at android.app.ActivityThread.access $ 500(ActivityThread.java:122) 09:51:农业交易错误AndroidRuntime at android.app.ActivityThread $ H.handleMessage(ActivityTh农业交易ERROR AndroidRuntime at android.os.Handler.dispatchMessage(Handler.java:99) 09:51:56.153 717 com.AgricultureTrading ERROR AndroidRuntime at android.os。 Looper.loop(Looper.java:132) 09:51:56.153 717 com.AgricultureTrading ERROR AndroidRuntime at android.app.ActivityThread.main(ActivityThread.java:4123) 09:51:56.153 717 com.AgricultureTrading ERROR AndroidRuntime at java.lang.reflect.Method.invokeNative(Native Method) 09:51:56.153 717 com.AgricultureTrading ERROR AndroidRuntime at java.lang.reflect.Method.invoke(Method.java:491) 09:51:56.153 717 com .AgricultureTrading ERROR AndroidRuntime at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:841) 09:51:56.153 717 com.AgricultureTradin g ERROR AndroidRuntime at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 09:51:56.153 717 com.AgricultureTrading ERROR AndroidRuntime at dalvik.system.NativeStart.main(Native Method) 09:51 :56.153 717 com.AgricultureTrading错误AndroidRuntime导致:java.lang.RuntimeException:无法启动活动ComponentInfo {com.AgricultureTrading/com.AgricultureTrading.ProfileActivity}:android.view.InflateException:二进制XML文件行#68:错误膨胀类com.AgricultureTrading.PestButtons 09:51:56.153 717 com.AgricultureTrading在android.app.ActivityThread.startActivityNow(ActivityThread.java:1656)上的错误AndroidRuntime 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime在android.app.LocalActivityManager .moveToState(LocalActivityManager.java:135) 09:51:56.153 717 com.AgricultureTrading ERROR An droidRuntime at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347) 09:51:56.153 717 com.AgricultureTrading ERROR AndroidRuntime at android.widget.TabHost $ IntentContentStrategy.getContentView(TabHost.java:676) 09:51: 56.153 717 com.AgricultureTrading在Android.widget.TabHost.setCurrentTab(TabHost.java:345) 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime 09:51:56.153 717 com.AgricultureTrading ERROR AndroidRuntime at android.app.Activity.performCreate(Activity.java:4397) 09:51:56.153 717 com。AgricultureTrading错误AndroidRuntime在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1779) 09:51: 56.153 717 com.AgricultureTrading错误AndroidRuntime ... 11更多 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime引起:android.view.InflateException:二进制XML文件行#68:错误膨胀类com.AgricultureTrading.PestButtons 09 :51:56.153 717 com.AgricultureTrading错误AndroidRuntime在android.view.LayoutInflater.createView(LayoutInflater.java:596) 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java: 671) 09:51:56.153 717 com.Ag ricultureTrading错误AndroidRuntime在android.view.LayoutInflater.rInflate(LayoutInflater.java:724) 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime在android.view.LayoutInflater.inflate(LayoutInflater.java:479) 09:51: 56.153 717 com.AgricultureTrading ERROR AndroidRuntime在android.view.LayoutInflater.inflate(LayoutInflater.java:391) 09:51:56.153在android.view.LayoutInflater.inflate(LayoutInflater.java:347)717 com.AgricultureTrading ERROR AndroidRuntime 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:223) 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime at android.app.Activity .setContentView(Activity.java:1786) 09:51:56.153 717 com.AgricultureTrading错误AndroidRunti我在com.AgricultureTrading.ProfileActivity.onCreate(ProfileActivity.java:43) 09:51:56.153 717 com.AgricultureTrading ERROR AndroidRuntime ... 20更多 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime引起︰java。 lang.reflect.InvocationTargetException 09:51:56.153 717 com.AgricultureTrading ERROR AndroidRuntime at java.lang.reflect.Constructor.constructNative(Native Method) 09:51:56.153 717 com.AgricultureTrading ERROR AndroidRuntime at java.lang.reflect。 Constructor.newInstance(Constructor.java:416) 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime at android.view.LayoutInflater.createView(LayoutInflater.java:576) 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime。 .. 31更多 09:51:56.153 717 com.AgricultureTrading错误An droidRuntime引起:java.lang.NullPointerException 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime at com.AgricultureTrading.PestButtons。(PestButtons.java:43) 09:51:56.153 717 com.AgricultureTrading错误AndroidRuntime ... 34多

+1

请提供errormessage的。 – Michele

+0

发布您的崩溃日志,然后我们可以找到您确切的问题。 –

回答

0

我假设你想从膨胀的观点的img:

  View v = inflater.inflate(R.layout.pestbuttons, this,true); 
     ImageButton img = (ImageButton) v.findViewById(R.id.reportListBtn); 
     if (img != null) { 
      img.setOnClickListener(screenshotOnClickListener); 
     } 
+0

我实际上是在stackoverflow.com/questions/4121986/...为什么他们没有错误? – user903772

+0

对不起,我的错。这不是活动,而是你自己的布局。你还可以显示你使用布局(PestButtons)的xml布局吗? – ania

+0

提供..这是紧急的。请帮帮我 – user903772