2015-02-07 44 views
0

嗨,下面的代碼NPE String result1 = imService.DispalyGroupDetails(imService.getUsername());在這一行顯示錯誤。我想要的用戶名。我通過使用imservice calss訪問用戶名。這些用戶名我在另一個地方訪問它的工作正常但在下面的代碼只給出問題。在安卓中引發NPE for imservice.username

任何一個可以幫助我

** **好友列表

public class FriendList extends ListActivity 
    { 
     private static final int ADD_NEW_FRIEND_ID = Menu.FIRST; 
     private static final int CREATE_GROUP_ID = Menu.FIRST+1; 
     private static final int EXIT_APP_ID = Menu.FIRST + 2; 
     private IAppManager imService = null; 
     private FriendListAdapter friendAdapter; 

     public String ownusername = new String(); 

     private class FriendListAdapter extends BaseAdapter 
     {  
      class ViewHolder { 
       TextView text,text1; 

       ImageView icon; 
      } 
      private LayoutInflater mInflater; 
      private Bitmap mOnlineIcon; 
      private Bitmap mOfflineIcon;   

      private FriendInfo[] friends = null; 


      public FriendListAdapter(Context context) { 
       super();    

       mInflater = LayoutInflater.from(context); 

       mOnlineIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.greenstar); 
       mOfflineIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.redstar); 

      } 

      public void setFriendList(FriendInfo[] friends) 
      { 
       this.friends = friends; 
       } 


      public int getCount() {  

       return friends.length; 
      } 


      public FriendInfo getItem(int position) {   

       return friends[position]; 
      } 

      public long getItemId(int position) { 

       return 0; 
      } 

      public View getView(int position, View convertView, ViewGroup parent) { 

       ViewHolder holder; 


       if (convertView == null) 
       { 
        convertView = mInflater.inflate(R.layout.friend_list_screen, null); 


        holder = new ViewHolder(); 
        holder.text1=(TextView)convertView.findViewById(R.id.text1); 
        holder.text = (TextView) convertView.findViewById(R.id.text); 

        holder.icon = (ImageView) convertView.findViewById(R.id.icon);          

        convertView.setTag(holder); 
       } 
       else { 

        holder = (ViewHolder) convertView.getTag(); 
       } 


       holder.text.setText(friends[position].userName); 
       //holder.text1.steText(groupname); 
       holder.icon.setImageBitmap(friends[position].status == STATUS.ONLINE ? mOnlineIcon : mOfflineIcon); 

       return convertView; 
      } 

     } 
protected void onCreate(Bundle savedInstanceState) 
    {  
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.list_screen); 



      try { 
      String result1 = imService.DispalyGroupDetails(imService.getUsername()); 
      System.out.println(result1); 
     } catch (UnsupportedEncodingException e) { 

      e.printStackTrace(); 
     } 

      friendAdapter = new FriendListAdapter(this); 

    } 

** **組列表

public class GroupList extends ListActivity 
{ 

    boolean[] checkBoxState; 
    boolean isChecked; 
    String check; 
    ListView users; 
    int position; 
    private IAppManager imService = null; 
    ArrayList<FriendInfo> result = new ArrayList<FriendInfo>(); 
    private FriendListAdapter friendAdapter; 

    public String ownusername = new String(); 

    private class FriendListAdapter extends BaseAdapter 
    { 
     @SuppressWarnings("unused") 

     class ViewHolder { 
      TextView text; 
      ImageView icon; 
      CheckBox check1; 



     } 

     private LayoutInflater mInflater; 
     private Bitmap mOnlineIcon; 
     private Bitmap mOfflineIcon;   

     private FriendInfo[] friend = null; 





     public FriendListAdapter(Context context) { 
      super();    

      mInflater = LayoutInflater.from(context); 

      mOnlineIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.greenstar); 
      mOfflineIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.redstar); 

     } 

     public void setFriendList(FriendInfo[] friends) 
     { 
      this.friend = friends; 

     } 


     public int getCount() {  

      return friend.length; 
     } 


     public FriendInfo getItem(int position) {   

      return friend[position]; 
     } 

     public long getItemId(int position) { 

      return 0; 
     } 

     @SuppressWarnings("unused") 
     public View getView(final int position, View convertView, ViewGroup parent) { 

      final ViewHolder holder; 


      if (convertView == null) 
      { 
       convertView = mInflater.inflate(R.layout.grouplist, null); 


       holder = new ViewHolder(); 

       holder.text = (TextView) convertView.findViewById(R.id.text); 
       holder.icon = (ImageView) convertView.findViewById(R.id.icon); 
       holder.check1 = (CheckBox)convertView.findViewById(R.id.checkBox1); 

       convertView.setTag(holder); 

      }   

      else { 

       holder = (ViewHolder) convertView.getTag(); 

      } 


      holder.text.setText(friend[position].userName); 
      holder.icon.setImageBitmap(friend[position].status == STATUS.ONLINE ? mOnlineIcon : mOfflineIcon); 

      final ArrayList<String> checkedFriends = new ArrayList<String>(); 
      checkBoxState = new boolean[friend.length]; 
      holder.check1.setChecked(checkBoxState[position]); 
      holder.check1.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 

       public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
        checkBoxState[position]=isChecked; 

        if(isChecked){ 

         check=friend[position].userName; 

        } 

       } 
      }); 


      return convertView; 
     } 
protected void onCreate(Bundle savedInstanceState){  
     super.onCreate(savedInstanceState); 

     if (android.os.Build.VERSION.SDK_INT > 9) { 
      StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder() 
      .permitAll().build(); 
      StrictMode.setThreadPolicy(policy); 
     } 
     setContentView(R.layout.group_list_screen); 

     Button create=(Button)findViewById(R.id.create); 


     friendAdapter = new FriendListAdapter(this); 


     friendAdapter.getCheckedItems(); 
     create.setOnClickListener(new OnClickListener() { 

      @SuppressWarnings({ "unused", "unchecked" }) 
      @Override 
      public void onClick(View v) { 
       String groupname = getIntent().getStringExtra("nick"); 

          try { 



           String result1 = imService.CreateGroup(groupname,imService.getUsername(),friendAdapter.getCheckedItems()); 
          } catch (UnsupportedEncodingException e) { 

           e.printStackTrace(); 
          } 



       Toast.makeText(getApplicationContext(), "Group Created Sucessfully",Toast.LENGTH_LONG).show(); 

      } 
     });  

    } 
+0

奇怪,你知道'NPE'在哪一行但無法找到原因?你正在初始化'imService'? – 2015-02-07 08:19:49

+0

private IAppManager imService = null; – user1 2015-02-07 08:21:58

+0

嘗試通過調用'IAppManager'類的構造函數來初始化它,比如'imService = new IAppManager()' – 2015-02-07 08:24:29

回答

0

您定義imService爲空:

private IAppManager imService = null; 

你從來沒有初始化它那麼您正試圖撥打

String result1 = imService.DispalyGroupDetails(imService.getUsername()); 

並因此產生空指針異常。您可能想要初始化imService。

+0

Hi在GroupList類中工作imService.getUsername()沒有初始化imService – user1 2015-02-07 08:43:36

+0

@請幫幫我 – user1 2015-02-07 08:55:54