2012-03-21 89 views
0

我有一个自定义列表视图,从服务器获取数据,并在每3秒后更改其内容。这是我使用的列表视图用于显示访问该站点的访问者列表。每行列表包含ipaddress,statustext,持续时间,noofvisit和按钮文本和数据更新和更改列表中这部分工作正常。为显示此列表我正在编写自定义适配器为了这。如何添加列表视图行如果列表视图具有动态数据从服务器获取android

其实我有一个问题,我必须显示顶部的行,如果状态文本是聊天请求。我该怎么做?任何人都可以帮助我吗?

其实我在使用tabhost后登录屏幕tabhost包含四个tabs.First用于监视窗口,显示访问者列表和其他聊天窗口,operatorlist和控件。

正如我定义上面,如果我有状态聊天请求,那么该行应该出现在顶部,并将包含两个按钮接受和拒绝,并接受按钮单击一个窗口将打开聊天和拒绝将用于拒绝聊天。

任何人都可以帮助我解决这个问题吗?

我的代码是继

公共类BaseActivity延伸活动{

private ListView list =null; 
private NotificationManager mNotificationManager; 

private final int NOTIFICATION_ID = 1010; 
public static Timer timer = new Timer(); 
private String response; 
protected Dialog m_ProgressDialog; 
String[] operatorList,operatorDetail,operatordetail,tempoperatordata; 
String[] noofvisitors,opt; 
private static final String DEB_TAG = "Error Message"; 
public static ArrayList<String> SessionText,IPText,DurationText,StatusText; 
private ArrayList<String> NoOfVisit,ButtonText; 
private int sizeoflist; 
private String IP; 
Context context; 
private CustomAdapter adapter; 
public static String from,sessionid,id,text,iptext,status,temo; 
private int position,noofchat; 
private boolean IsSoundEnable,IsChatOnly; 
private Button logout; 

NotificationManager notificationManager; 



final HashMap<String, String> postParameters = new HashMap<String, String>(); 
private String url; 

private Handler handler; 





public void TimerMethod() 
{ 
    //This method is called directly by the timer 
    //and runs in the same thread as the timer. 

    //We call the method that will work with the UI 
    //through the runOnUiThread method. 
    this.runOnUiThread(Timer_Tick); 

} 

private Runnable Timer_Tick = new Runnable() { 
    public void run() { 

     //This method runs in the same thread as the UI.    
     try{ 

      getVisitorDetailFromServer(); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 


     try { 
      Log.i("UPDATE", "Handler called"); 

      list.invalidateViews(); 
      playSound3(); 


     } catch(Exception e) { 
      Log.e("UPDATE ERROR", "error"); 
     } 


    } 


}; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.visitor); 

    list = (ListView) findViewById(R.id.list01); 

    logout = (Button) findViewById(R.id.btnlogout); 

    //list.addView("chat request", 0); 





    //-----------------Making the object of arrayList---------------- 

    SessionText = new ArrayList<String>(); 
    IPText = new ArrayList<String>(); 
    DurationText = new ArrayList<String>(); 
    StatusText = new ArrayList<String>(); 
    NoOfVisit = new ArrayList<String>(); 
    ButtonText = new ArrayList<String>(); 

    Bundle extras = getIntent().getExtras(); 
    if (extras != null) { 
     IsSoundEnable = Controls.IsSoundEnable; 
     IsChatOnly = Controls.IsChatOnly; 
     IsSoundEnable = extras.getBoolean("IsSoundOnly", Controls.IsSoundEnable); 
     IsChatOnly= extras.getBoolean("IsCOnlyhat", Controls.IsChatOnly); 
     extras.getString("From"); 
     position=extras.getInt("Position"); 


    } 



} 



@Override 
protected void onStart() { 

    super.onStart(); 


    //------------Getting the visitor detail------------------------- 

    try{ 
     getVisitorDetailFromServer(); 
    }catch(Exception e){ 
     e.printStackTrace(); 
    } 

    timer.schedule(new TimerTask() { 
     public void run() { 
      TimerMethod(); 
     } 

    }, 0, 7000); 




    //---------------When user click on logout button----------------------------------- 


    logout.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      try{ 
       logoutFromServer(); 

      } 
      catch(Exception e){ 
       e.printStackTrace(); 
      } 



     } 


    }); 


} 

private void playSound3() { 
    // TODO Auto-generated method stub 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.newvisitors); 

    mp.start(); 

} 




//----------------------------Getting the detail from server of monitoring window------------------------- 


private void getVisitorDetailFromServer() { 
    // TODO Auto-generated method stub 



    url = "http://"+Main.tempurl+"/"+Main.url1+"/"+Url.IDS_AllOnline; 
    postParameters.put("adminid",Main.loginId.getText().toString()); 
    postParameters.put("sid",Main.siteId.getText().toString()); 
    postParameters.put("nvar","Y"); 
    postParameters.put("conly", "N"); 


    Runnable searchThread = new Runnable(){ 

     public void run() { 
      // TODO Auto-generated method stub 

      try { 

       response = CustomHttpClient.executeHttpPost1(url,postParameters); 

       Log.i(DEB_TAG, "Requesting to server"+response); 
       //CustomHttpClient.getResponseInString(response); 

       //System.out.println("Output of httpResponse:"+response); 

       String result = response; 
       result = response; 

       String delimiter1 = "<ln>"; 
       String delimiter2 = "<blk>"; 

       String[] temp = result.split(delimiter2); 
       operatorDetail = result.split(delimiter1); 
       if(temp.length==7){ 
        String visitorString = temp[0]; 
        String strSound = temp[3]; 
        String strCSRmsgOrChatTrans = temp[4]; 
        String stroperator = temp[5]; 
        String strvisitor = temp[1]; 

        visitorString = visitorString.trim(); 
        if(!(visitorString.equals(""))||(visitorString.equalsIgnoreCase("No Visitors online")||(visitorString.equalsIgnoreCase("No Users Online")))){ 
         operatorDetail = result.split(delimiter1); 
         //sizeoflist =operatorDetail.length; 
        } 
        else{ 

         sizeoflist = 0; 
        } 

       } 

       else{ 

        sizeoflist = operatorDetail.length; 
       } 

       //System.out.println("operatordetail length"+operatorDetail.length); 


       System.out.println("firstresponse================"+operatorDetail[0]); 
       if(operatorDetail[0].equalsIgnoreCase("logout")){ 
        sizeoflist = 0; 
        System.exit(0); 
        finish(); 
       } 

       if(temp[0].equalsIgnoreCase("No Users Online")){ 
        if(temp[1].equalsIgnoreCase("0")){ 
         sizeoflist =0; 
       } 
        else if(temp[1].length()>0){ 
         sizeoflist = 0; 
        } 
        else if(temp[0].equalsIgnoreCase("")){ 
         sizeoflist = 0; 
        } 
        sizeoflist =0; 
       } 
       else{ 
        sizeoflist =operatorDetail.length; 
       } 





       //operatorDetail = result.split(delimiter1); 

       //--------Getting the size of the list--------------------- 

      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      if(response!=null){ 



       runOnUiThread(new Runnable() { 

        public void run() { 
         // TODO Auto-generated method stub 
         //playsound3(); 
         noofchat =0; 

         list.setAdapter(new CustomAdapter(BaseActivity.this)); 

         list.getDrawingCache(false); 
         list.invalidateViews(); 
         list.setCacheColorHint(Color.TRANSPARENT); 
         list.requestFocus(0); 
         list.setFastScrollEnabled(true); 
         //list.setSelected(true); 


         list.setOnItemClickListener(new OnItemClickListener() { 
          @Override 
          public void onItemClick(AdapterView<?> parent, View view, int position, 
            long id) { 

           String item = ((TextView)view).getText().toString(); 

           Toast.makeText(getBaseContext(), item, Toast.LENGTH_LONG).show(); 

          } 


         }); 


        } 


       }); 
      } 

      else { 

       //ShowAlert(); 
      } 


     } 
    }; 

    Thread thread = new Thread(null, searchThread, "MagentoBackground"); 
    thread.start(); 




} 


//--------------------When internet connection is failed show alert 

private void ShowAlert() { 
    // TODO Auto-generated method stub 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    final AlertDialog alert = builder.create(); 
    alert.setTitle("Live2Support"); 
    alert.setMessage("Internet Connection failed"); 
    alert.setButton("OK", new DialogInterface.OnClickListener() { 

     public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 
      //startActivity(new Intent(CreateAccount.this,CreateAccount.class)); 
      alert.dismiss(); 

     } 
    }); 

    alert.show(); 
} 


//------------------------Getting the notification of no.of visitor on the site--------------------------- 

private void triggerNotification() { 
    // TODO Auto-generated method stub 
    CharSequence title = "No Of visitors"; 
    CharSequence message = "New visit"; 
    NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 
    Notification notification = new Notification(R.drawable.icon, noofvisitors[0], System.currentTimeMillis()); 
    notification.flags |= Notification.FLAG_AUTO_CANCEL; 


    Intent notificationIntent = new Intent(this, L2STest.class); 
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 

    notification.setLatestEventInfo(BaseActivity.this, title, noofvisitors[0], pendingIntent); 
    notificationManager.notify(NOTIFICATION_ID, notification); 
    playsound4(); 

} 

public void completed() { 
    //remove the notification from the status bar 
    mNotificationManager.cancel(NOTIFICATION_ID); 
} 


private void playsound4() { 
    // TODO Auto-generated method stub 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.newvisitsound); 

    mp.start(); 

} 



//-----------------Logout from server-------------------- 

private void logoutFromServer() { 
    // TODO Auto-generated method stub 
    final String url ="http://"+Main.tempurl+"/"+Main.url1+"/"+Url.IDS_LOGOUT; 

    final HashMap<String, String> postParameters = new HashMap<String, String>(); 
    try{ 
     postParameters.put("adminid",Main.loginId.getText().toString()); 
     postParameters.put("sid",Main.siteId.getText().toString()); 
    }catch(Exception e){ 
     e.printStackTrace(); 
    } 

    Runnable searchThread = new Runnable(){ 

     public void run() { 
      // TODO Auto-generated method stub 

      try { 
       response = CustomHttpClient.executeHttpPost1(url,postParameters); 

       Log.i(DEB_TAG, "Requesting to server"+response); 

       //CustomHttpClient.getResponseInString(response); 

       System.out.println("Output of httpResponse:"+response); 







      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      if(response!=null){ 

       runOnUiThread(new Runnable() { 

        public void run() { 
         // TODO Auto-generated method stub 
         // notificationManager.cancelAll();] 


         System.out.println(response); 
         showAlert1(); 

         //getSharedPreferences(Main.PREFS_NAME,MODE_PRIVATE).edit().clear().commit(); 
         Log.e(DEB_TAG, response); 
         //System.exit(0); 
         Intent intent = new Intent(BaseActivity.this,Main.class); 
         startActivity(intent); 
         //closeHandler(); 

        } 


       }); 
      } 


     } 


    }; 

    Thread thread = new Thread(null, searchThread, "MagentoBackground"); 
    thread.start(); 


} 



//----------------------Logout alert when user click on logout button------------------ 


private void showAlert1() { 
    // TODO Auto-generated method stub 
    int duration = Toast.LENGTH_SHORT; 
    Context context = getApplicationContext(); 
    CharSequence text = "You have Successfully logout."; 
    Toast toast = Toast.makeText(context, text, duration); 
    toast.setGravity(Gravity.TOP|Gravity.LEFT, 200, 200); 
    toast.show(); 
} 



//-------------------Play sound3 when any new user visit---------------- 


private void playsound3() { 
    // TODO Auto-generated method stub 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.newvisitors); 

    mp.start(); 

} 


//------------------The adapter class------------------------------ 


private class CustomAdapter extends BaseAdapter { 
    private LayoutInflater mInflater; 




    public CustomAdapter(Context context) { 

     mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     this.notifyDataSetChanged(); 

     SessionText.clear(); 
     IPText.clear(); 
     DurationText.clear(); 
     StatusText.clear(); 
     NoOfVisit.clear(); 
     ButtonText.clear(); 



    } 


    public int getCount() { 
     return sizeoflist; 
    } 

    public Object getItem(int position) { 
     return position; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    /* (non-Javadoc) 
    * @see android.widget.Adapter#getView(int, android.view.View, android.view.ViewGroup) 
    */ 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     final ViewHolder holder; 
     if (convertView == null) { 

      convertView = mInflater.inflate(R.layout.row1, null); 
      holder = new ViewHolder(); 
      holder.IP = (TextView) convertView.findViewById(R.id.ip); 
      holder.duration = (TextView) convertView.findViewById(R.id.duration); 
      holder.status =(TextView) convertView.findViewById(R.id.status); 
      holder.noOfVisit = (TextView) convertView.findViewById(R.id.NoOfvisit); 
      holder.invite =(Button)convertView.findViewById(R.id.btnjoin); 
      holder.deny = (Button) convertView.findViewById(R.id.btndeny); 
      //holder.accept = (Button) convertView.findViewById(R.id.btnaccept); 


      holder.deny.setVisibility(View.INVISIBLE); 

      holder.invite.setId(position); 
      holder.invite.setTag(position); 

      convertView.setTag(holder); 
     } else { 
      holder = (ViewHolder) convertView.getTag(); 

     } 


     String result = response; 

     String delimiter = "<fld>"; 
     String delimiter1 = "<ln>"; 



     for(int i=0;i<operatorDetail.length;i++){ 
      if(operatorDetail!=null){ 

       //System.out.println("Operator res=============="+operatorDetail[i]); 


       operatorList = operatorDetail[i].split(delimiter); 

       try{ 

        if(operatorList[0]!=null){ 
         SessionText.add(operatorList[0]); 
         sessionid = operatorList[0]; 
        } 
        else{ 
         onStart(); 
        } 
       }catch(Exception e){ 
        e.printStackTrace(); 
       } 
       try{ 
        if(operatorList[1]!=null){ 
         IPText.add(operatorList[1]); 
         iptext = operatorList[1]; 
        } 
        else{ 
         System.out.println("Oplst is null"); 
        } 
       } 
       catch(Exception e){ 
        e.printStackTrace(); 
       } 
       try{ 
        if(operatorList[4]!=null){ 
         DurationText.add(operatorList[4]); 
        } 
        else{ 
         System.out.println("Oplst is null"); 
        } 
       } 
       catch(Exception e){ 
        e.printStackTrace(); 
       } 
       try{ 
        if(operatorList[3]!=null){ 
         StatusText.add(operatorList[3]); 
         status = operatorList[3]; 
        } 
        else{ 
         System.out.println("Oplst is null"); 
        } 
       } 
       catch(Exception e){ 
        e.printStackTrace(); 
       } 
       try{ 
        if(operatorList[2]!=null){ 
         NoOfVisit.add(operatorList[2]); 
        } 
        else{ 
         System.out.println("Oplst is null"); 
        } 
       }catch(Exception e){ 
        e.printStackTrace(); 
       } 
       //ButtonText.add(operatorList[6]); 




       try{ 
        if(IPText!=null){ 

         holder.IP.setText(IPText.get(position)); 
        } 
       } 
       catch(Exception e){ 
        e.printStackTrace(); 
       } 
       try{ 
        if(DurationText!=null){ 

         holder.duration.setText(DurationText.get(position)); 
        } 
       } 
       catch(Exception e){ 
        e.printStackTrace(); 
       } 
       try{ 
        if(StatusText!=null){ 

         holder.status.setText(StatusText.get(position)); 
        } 
       } 
       catch(Exception e){ 
        e.printStackTrace(); 
       } 

       try{ 
        if(NoOfVisit!=null){ 
         holder.noOfVisit.setText(NoOfVisit.get(position)); 
        } 
       } 
       catch(Exception e){ 
        e.printStackTrace(); 
       } 




       //----------------If status is chat request then check for this----------------- 

       try{ 
        if(StatusText.get(position).equalsIgnoreCase("chat request")){ 
         //playsound(); 
         playsound(); 
         holder.deny.setVisibility(View.VISIBLE); 
         holder.invite.setText("Accept"); 
         holder.deny.setText("Deny"); 
         convertView.bringToFront(); 
         convertView.setFocusableInTouchMode(true); 
         convertView.setSelected(true); 
         //convertView.setFocusable(true); 
         convertView.requestFocus(); 
         convertView.clearFocus(); 


         holder.invite.setOnClickListener(new View.OnClickListener() { 

          public void onClick(View v) { 
           // TODO Auto-generated method stub 
           holder.invite.setText("Join"); 
           holder.deny.setVisibility(View.INVISIBLE); 

           try{ 
            chatRequest(IPText.get(position), SessionText.get(position)); 
           } 
           catch(Exception e){ 
            e.printStackTrace(); 
           } 
           Intent i = new Intent(BaseActivity.this,Chat1.class); 
           i.putExtra("ID", id); 
           i.putExtra("Position",position); 
           i.putExtra("From", from); 
           try{ 
            i.putExtra("SessionText",SessionText.get(position)); 
            i.putExtra("IPTEXT",IPText.get(position)); 
            i.putExtra("StatusText",StatusText.get(position)); 
           } 
           catch(Exception e){ 
            e.printStackTrace(); 
           } 
           startActivity(i); 
          } 
         }); 

        } 
        else{ 
         holder.invite.setText("Invite"); 
         holder.deny.setVisibility(View.INVISIBLE); 
         //---------------------When user click on invite Button--------------------- 


         holder.invite.setOnClickListener(new View.OnClickListener() { 

          public void onClick(View v) { 
           // TODO Auto-generated method stub 
           timer.purge(); 

           try{ 
            if(SessionText!=null){ 
             callToServer(SessionText.get(position)); 
            } 

            else{ 

             System.out.println("null"); 

            } 
           } 
           catch(Exception e){ 

            e.printStackTrace(); 


           } 

          } 
         }); 


        } 

       } 
       catch(Exception e){ 
        e.printStackTrace(); 
       } 







       //-----------------------------When user click on deny button------------------------ 

       holder.deny.setOnClickListener(new View.OnClickListener() { 

        public void onClick(View v) { 
         // TODO Auto-generated method stub 
         timer.purge(); 
         try{ 
          if(SessionText.get(position)!=null){ 
           refuseToServer(SessionText.get(position)); 
           holder.deny.setVisibility(View.INVISIBLE); 
          } 
          else{ 
           System.out.println("null"); 
          } 
         }catch(Exception e){ 
          e.printStackTrace(); 
         } 


        } 




       }); 


       //-----------When user click on the listiview row----------------------- 

       convertView.setOnClickListener(new OnClickListener(){ 

        public void onClick(View v) { 
         timer.purge(); 

         if(SessionText!=null&&IPText!=null){ 
          try{ 
           Intent i=new Intent(BaseActivity.this,VisitorDetail.class); 
           i.putExtra("ID", id); 
           i.putExtra("Position",position); 
           i.putExtra("From", from); 
           i.putExtra("SessionText", sessionid); 
           i.putExtra("IPTEXT",iptext); 
           startActivity(i); 

          }catch(Exception e){ 
           e.printStackTrace(); 
          } 

         } 

         else{ 

          timer.schedule(new TimerTask() { 
           public void run() { 
            TimerMethod(); 
           } 

          }, 0, 5000); 
         } 



        }}); 


      } 

     } 

     operatorDetail=null; 
     operatorList=null; 


     operatorDetail = result.split(delimiter1); 



     return convertView; 
    } 


    class ViewHolder { 
     TextView IP; 
     TextView duration; 
     Button deny; 
     TextView status; 
     TextView noOfVisit; 
     Button invite; 
     Button accept; 
    } 
} 


//------------------Play sound when user click on invite button------------------------- 

private void playSound2() { 
    // TODO Auto-generated method stub 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.invite); 

    mp.start(); 

} 


//---------------When any chat request come----------------- 

private void playsound() { 
    // TODO Auto-generated method stub 
    MediaPlayer mp = MediaPlayer.create(this, R.raw.chatinvitation); 

    mp.start(); 

} 



//------------When user click on deny button--------------------- 


private void refuseToServer(String sessionid) { 
    // TODO Auto-generated method stub 
    //final String url = "http://sa.live2support.com/cpn/wz-action.php?"; 
    url = "http://"+Main.tempurl+"/"+Main.url1+"/"+Url.IDS_ACTION; 

    final HashMap<String, String> postParameters = new HashMap<String, String>(); 

    postParameters.put("action","refuse"); 
    postParameters.put("csesid", sessionid); 


    postParameters.put("sid",Main.siteId.getText().toString()); 
    postParameters.put("adminid",Main.loginId.getText().toString()); 


    Runnable searchThread = new Runnable(){ 

     public void run() { 
      // TODO Auto-generated method stub 

      try { 
       response = CustomHttpClient.executeHttpPost1(url,postParameters); 

       Log.i(DEB_TAG, "Requesting to server"+response); 
       //CustomHttpClient.getResponseInString(response); 


       System.out.println("Deny Chat response:"+response); 


       System.out.println("Deny chat Success"+IP); 


      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      if(response!=null){ 

       runOnUiThread(new Runnable() { 

        public void run() { 
         // TODO Auto-generated method stub 

         System.out.println("response================="+IP); 

         showAlert(IP); 

        } 



       }); 
      } 


     } 


    }; 

    Thread thread = new Thread(null, searchThread, "MagentoBackground"); 
    thread.start(); 

} 



//---------------------When user click on invite button----------------------- 


private void callToServer(String session) { 
    // TODO Auto-generated method stub 

    url = "http://"+Main.tempurl+"/"+Main.url1+"/"+Url.IDS_ACTION; 

    final HashMap<String, String> postParameters = new HashMap<String, String>(); 

    postParameters.put("action","cinvt"); 
    postParameters.put("csesid", session); 

    postParameters.put("sid",Main.siteId.getText().toString()); 
    postParameters.put("adminid",Main.loginId.getText().toString()); 


    Runnable searchThread = new Runnable(){ 

     public void run() { 
      // TODO Auto-generated method stub 

      try { 
       response = CustomHttpClient.executeHttpPost1(url,postParameters); 

       Log.i(DEB_TAG, "Requesting to server"+response); 
       //CustomHttpClient.getResponseInString(response); 


       System.out.println("Output of httpResponse:"+response); 

       IP = response; 
       System.out.println("the resultant ip ===================="+IP); 


      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      if(response!=null){ 

       runOnUiThread(new Runnable() { 

        public void run() { 
         // TODO Auto-generated method stub 
         playSound2(); 

         System.out.println("response================="+IP); 

         showAlert(IP); 

        } 



       }); 
      } 


     } 


    }; 

    Thread thread = new Thread(null, searchThread, "MagentoBackground"); 
    thread.start(); 

} 

//------------------Show invitation alert---------------------- 

private void showAlert(String ip) { 
    // TODO Auto-generated method stub 
    int duration = Toast.LENGTH_SHORT; 
    Context context = getApplicationContext(); 
    CharSequence text = "Invitation sent to "+ip; 
    Toast toast = Toast.makeText(context, text, duration); 
    toast.setGravity(Gravity.TOP|Gravity.LEFT, 50, 50); 
    toast.show(); 
} 


//-----------------When in response we get the chat request-------------------------- 

private void chatRequest(String iptext, String sessionid) { 
    // TODO Auto-generated method stub 

    url = "http://"+Main.tempurl+"/"+Main.url1+"/"+Url.IDS_ONCHATREQUEST; 

    final HashMap<String, String> postParameters = new HashMap<String, String>(); 


    postParameters.put("csesid", sessionid); 
    postParameters.put("ipaddr", iptext); 

    postParameters.put("sid",Main.siteId.getText().toString()); 
    postParameters.put("adminid",Main.loginId.getText().toString()); 
    postParameters.put("join", "Y"); 


    Runnable searchThread = new Runnable(){ 

     public void run() { 
      // TODO Auto-generated method stub 

      try { 
       response = CustomHttpClient.executeHttpPost1(url,postParameters); 

       Log.i(DEB_TAG, "Requesting to server"+response); 
       //CustomHttpClient.getResponseInString(response); 


       System.out.println("Output of httpResponse:"+response); 

       IP = response; 
       System.out.println("the resultant ip ===================="+IP); 


      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      if(response!=null){ 

       runOnUiThread(new Runnable() { 

        public void run() { 
         // TODO Auto-generated method stub 
         playSound2(); 

         System.out.println("response================="+response); 

         showAlert(IP); 

        } 

       }); 
      } 

     } 


    }; 

    Thread thread = new Thread(null, searchThread, "MagentoBackground"); 
    thread.start(); 

} 



public void onNotifiyDataSetChanged(){ 
    super.notifyAll(); 
} 




@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Intent i=new Intent(BaseActivity.this,Main.class); 
     i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);   
     return true;  
    } 
    return super.onKeyDown(keyCode, event); 
} 

}

我能为设置已经聊顶部要求的行吗?谁能帮助我?

+0

你需要有所缩小你的问题,这是* *的方式太长,它是建设性的。 – 2012-03-21 11:06:15

+0

可能是这种方式http://pastebin.com/fz3DsAya – MKJParekh 2012-03-21 12:55:59

回答

0
ArrayList<String> userList = your list of data 
      // other list also 
      //userListA 
      //userListB 
      ArrayList<String> tempUserList = new ArrayList<String>(); 
      // other list also 
      //tempuserListA 
      //tempuserListB 
      String text = "ChatRequest"; 
      // to add CharRequest at top 
      for(int i=0;i<userList.size();i++) 
      { 
       if(userList.get(i).equals(text)) 
       { 
        tempUserList.add(userList.get(i)); 
        //tempuserlistA.add(userlistA.get(i)); 
        //tempuserlistB.add(userlistB.get(i)); 
       } 

      } 
      // to add other entry 
      for(int i=0;i<userList.size();i++) 
      { 
       if(!userList.get(i).equals(text)) 
       { 
        tempUserList.add(userList.get(i)); 
        //tempuserlistA.add(userlistA.get(i)); 
        //tempuserlistB.add(userlistB.get(i)); 
       } 

      } 

      //now temp list are you original list to use 
      userList = tempUserList; 
      //userListA = tempuserlistA; 
      //userListB = tempuserlistB; 

      // and then call your adapter with the arraylists 
+0

感谢soni为您的帮助。这个代码为我工作,但一些改变后,我使用您的代码的一部分......... – nikki 2012-03-22 07:05:31

+0

好..确保..很容易理解这个问题,因为出来聊天.. – MKJParekh 2012-03-22 07:16:36

+0

无论如何谢谢soni .... – nikki 2012-03-22 07:52:40

0

您可以使用一个ArrayList来存放ListView的数据,并通过myArrayList.add(0,newItem)在列表的开头添加一个项目。 下面的例子适配器,可以这样做:

public class PlaylistAdapter extends BaseAdapter { 

    private Context context; 
    private List<Playlist> entries; 

    public PlaylistAdapter(Context context, List<Playlist> entries) { 
     this.context = context; 
     this.entries = entries; 
    } 

    public void add(Playlist item) { 
     if (entries.contains(item)) 
      return; 
     entries.add(item); 
     this.notifyDataSetChanged(); 
    } 

    public void add(int index, Playlist item) { 
     if (entries.contains(item)) 
      return; 
     entries.add(index, item); 
     this.notifyDataSetChanged(); 
    } 

    @Override 
    public int getCount() { 
     return entries.size(); 
    } 

    @Override 
    public Playlist getItem(int arg0) { 
     return entries.get(arg0); 
    } 

    @Override 
    public long getItemId(int arg0) { 
     return arg0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      LayoutInflater inflater = (LayoutInflater) context 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      // inflate the layout you want to use for a single entry row 
      convertView = inflater.inflate(R.layout.playlists_adapter_entry, 
        null); 
     } 
     // fetches the current item 
     Playlist playlist = getItem(position); 

     // fill the entry layout with data 
     ImageView cover = (ImageView) convertView 
       .findViewById(R.id.playlist_adapter_entry_cover); 
     cover.setImageBitmap(playlist.getCover()); 

     TextView title = (TextView) convertView 
       .findViewById(R.id.playlist_adapter_entry_title); 
     title.setText(playlist.getTitle());  
     return convertView; 
    } 

} 
+0

这将工作,如果数据正在改变................. – nikki 2012-03-21 10:31:05

+0

是的。只需调用“add(0,myItem)” – 2012-03-21 10:34:47

相关问题