2012-10-18 37 views
0

我是新的android和我已經創建了一個項目。在我的活動中,我有ListView和Tabhost都和我的活動範圍listactivity。當我運行我的項目,然後把它給錯誤Android:獲取錯誤java.lang.NullPointerException

10-18 14:26:13.053: E/AndroidRuntime(278): FATAL EXCEPTION: main 
10-18 14:26:13.053: E/AndroidRuntime(278): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.shareslab/com.example.shareslab.MessageList}: java.lang.NullPointerException 
10-18 14:26:13.053: E/AndroidRuntime(278): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
10-18 14:26:13.053: E/AndroidRuntime(278): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
10-18 14:26:13.053: E/AndroidRuntime(278): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
10-18 14:26:13.053: E/AndroidRuntime(278): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
10-18 14:26:13.053: E/AndroidRuntime(278): at android.os.Handler.dispatchMessage(Handler.java:99) 
10-18 14:26:13.053: E/AndroidRuntime(278): at android.os.Looper.loop(Looper.java:123) 
10-18 14:26:13.053: E/AndroidRuntime(278): at android.app.ActivityThread.main(ActivityThread.java:4627) 
10-18 14:26:13.053: E/AndroidRuntime(278): at java.lang.reflect.Method.invokeNative(Native Method) 
10-18 14:26:13.053: E/AndroidRuntime(278): at java.lang.reflect.Method.invoke(Method.java:521) 
10-18 14:26:13.053: E/AndroidRuntime(278): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
10-18 14:26:13.053: E/AndroidRuntime(278): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
10-18 14:26:13.053: E/AndroidRuntime(278): at dalvik.system.NativeStart.main(Native Method) 
10-18 14:26:13.053: E/AndroidRuntime(278): Caused by: java.lang.NullPointerException 
10-18 14:26:13.053: E/AndroidRuntime(278): at com.example.shareslab.MessageList.onCreate(MessageList.java:107) 
10-18 14:26:13.053: E/AndroidRuntime(278): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
10-18 14:26:13.053: E/AndroidRuntime(278): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 

我的活動就在這裏

package com.example.shareslab; 


import java.util.ArrayList; 
import java.util.Arrays; 


import com.example.shareslab.R; 

import android.app.Dialog; 
import android.app.ListActivity; 
import android.app.LocalActivityManager; 
import android.content.Context; 
import android.content.Intent; 
import android.content.SharedPreferences; 

import android.os.Bundle; 
import android.preference.PreferenceManager; 

import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.BaseAdapter; 
import android.widget.ImageView; 
import android.widget.ListView; 
import android.widget.TabHost; 

import android.widget.TabHost.TabSpec; 
import android.widget.TextView; 


public class MessageList extends ListActivity { 
    LocalActivityManager mLocalActivityManager; 



    public static String singleDescription; 
    public static String title,URLToPost,imageURL; 
    public static ArrayList<String> galleryImages; 
    private static class EfficientAdapter extends BaseAdapter 
    {  
     private LayoutInflater mInflater; 
     public EfficientAdapter(Context context) 
     { 
      mInflater = LayoutInflater.from(context); 
     } 
     @Override 
     public int getCount() { 
      System.out.println("description COUNT : "+SplashActivity.description.size()); 
      return SplashActivity.description.size(); 
     } 
     @Override 
     public Object getItem(int position) { 
      return position; 
     } 
     @Override 
     public long getItemId(int position) { 
      return position; 
     } 
     @Override 
     public View getView(final int position, View convertView, ViewGroup parent) 
     { 

      ViewHolder holder; 
      if (convertView == null) 
      { 
       convertView = mInflater.inflate(R.layout.inflate_list_item, null); 
       holder = new ViewHolder();    
       holder.title = (TextView) convertView.findViewById(R.id.inflate_title); 
       holder.des = (TextView) convertView.findViewById(R.id.inflate_description); 
       holder.im= (ImageView) convertView.findViewById(R.id.inflate_image); 
       convertView.setTag(holder);   
      } 
      else 
      { 
       holder = (ViewHolder) convertView.getTag(); 

      } 

      UrlImageViewHelper.setUrlDrawable(holder.im, SplashActivity.imageURLAmit.get(position),null); 
      holder.title.setText(SplashActivity.titles.get(position)); 
      holder.des.setText(SplashActivity.description.get(position)); 

      return convertView; 
     } 

     public static class ViewHolder { 
      TextView title,des; 
      ImageView im; 
     } 

    } // close class Efficent adapter 


    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 




     ListView listView = getListView(); 
     listView.setTextFilterEnabled(true); 
     this.setListAdapter(new EfficientAdapter(this)); 
     listView.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
       // When clicked, show a toast with the TextView text 
       galleryImages=new ArrayList<String>(); 
       singleDescription=SplashActivity.description.get(position); 
       title=SplashActivity.titles.get(position); 
       URLToPost=SplashActivity.link.get(position); 
       imageURL=SplashActivity.imageURLAmit.get(position); 
       System.out.println("ON CLICK URL: "+URLToPost); 
       galleryImages.addAll(Arrays.asList(SplashActivity.arrays[position]));    
       startActivity(new Intent(MessageList.this,MessageListDetail.class)); 
      } 
     }); 

     TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost); 
     mLocalActivityManager = new LocalActivityManager(this, false); 
     tabHost.setup(mLocalActivityManager); 
     mLocalActivityManager.dispatchCreate(icicle); //after the tab's setup is called, you have to call this or it wont work 

     TabHost.TabSpec spec; 
     Intent intent; 

     tabHost.getTabWidget().setDividerDrawable(R.drawable.tab_divider); 


     intent = new Intent().setClass(this, Home.class); 
     spec = tabHost.newTabSpec("tagname1").setIndicator("HOME").setContent(intent); 
     tabHost.addTab(spec); 

     intent = new Intent().setClass(this, SocialMedia.class); 
     spec = tabHost.newTabSpec("tagname2").setIndicator("SOCIAL MEDIA").setContent(intent); 
     tabHost.addTab(spec); 

     intent = new Intent().setClass(this, Tech.class); 
     spec = tabHost.newTabSpec("tagname3").setIndicator("TECH").setContent(intent); 
     tabHost.addTab(spec); 

     intent = new Intent().setClass(this, USWorld.class); 
     spec = tabHost.newTabSpec("tagname4").setIndicator("US & WORLD").setContent(intent); 
     tabHost.addTab(spec); 
     intent = new Intent().setClass(this, Business.class); 
     spec = tabHost.newTabSpec("tagname5").setIndicator("BUSINESS").setContent(intent); 
     tabHost.addTab(spec); 

     intent = new Intent().setClass(this, Fashion.class); 
     spec = tabHost.newTabSpec("tagname6").setIndicator("FASHION").setContent(intent); 
     tabHost.addTab(spec); 
     intent = new Intent().setClass(this, People.class); 
     spec = tabHost.newTabSpec("tagname7").setIndicator("PEOPLE").setContent(intent); 
     tabHost.addTab(spec); 

     intent = new Intent().setClass(this, Political.class); 
     spec = tabHost.newTabSpec("tagname8").setIndicator("POLITICAL").setContent(intent); 
     tabHost.addTab(spec); 
} 

@Override 
protected void onPause() { 
     super.onPause(); 
     mLocalActivityManager.dispatchPause(isFinishing()); //you have to manually dispatch the pause msg 
} 

@Override 
protected void onResume() { 
     super.onResume(); 
     mLocalActivityManager.dispatchResume(); //you have to manually dispatch the resume msg 
} 







    private static View createTabView(final Context context, final String text) { 
     View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null); 
     TextView tv = (TextView) view.findViewById(R.id.tabsText); 
     tv.setText(text); 
     return view; 
    } 

    } 
+0

你能否提供更多的logcat錯誤信息... –

+2

127號線的代碼是什麼? –

+0

@jackson我已編輯我的問題,你可以看到完整的logcat .. – user1755834

回答

0

請問您的主XML包含一個tabhost看法?

+0

是的我有一個tabhost視圖在XML – user1755834

相關問題