2011-08-10 58 views
0

你好,我的舊代碼正在工作,但問題是,當我點擊表格時,它會調用另一個活動,但它不會設置表格行數據,而是將最後一個數組數據設置爲該活動。如何在android中動態獲取tablerow id?

意味着它將最後一個數組值設置爲下一個屏幕活動。

for (j = 0; j < dataListfeture.size(); j++) 
      { 

       HashMap<String, String> hm = new HashMap<String, String>(); 

       hm = dataListfeture.get(j); 

       final TableRow tblrow = new TableRow(MainScreen.this); 
       final View rowView = inflater.inflate(R.layout.featuredrow, null); 
       tblrow.setId(j); 
       tblrow.getId(); 



       featuredName = (TextView) rowView.findViewById(R.id.xxName); 
       featuredDistance = (TextView) rowView.findViewById(R.id.xxDistance); 
       featuredVeneType = (TextView) rowView.findViewById(R.id.xxVeneType); 
       featuredPhone = (TextView) rowView.findViewById(R.id.xxPhone); 
       featuredAddress = (TextView) rowView.findViewById(R.id.xxAddress); 

       Drawable image = ImageOperations(MainScreen.this, hm.get("url"), "image.jpg"); 

       featuredImage = (ImageView) rowView.findViewById(R.id.xxdImage); 
       featuredImage.setImageDrawable(image); 

       featuredName.setText("" + hm.get("name")); 
       featuredDistance.setText("" + hm.get("distance") + " mi"); 
       featuredVeneType.setText("" + hm.get("venuetype")); 
       featuredPhone.setText("" + hm.get("phonenumber")); 
       featuredAddress.setText("" + hm.get("address")); 


       mapnamelist = hm.get("name"); 
       mapvenuelist = hm.get("venuetype"); 
       mapothervenuelist = hm.get("othervenuetype"); 
       mapaddresslist= hm.get("address"); 
       mapcitylist= hm.get("city"); 
       mapstatelist= hm.get("state"); 


       tblrow.setOnClickListener(new OnClickListener() 
       { 

        @Override 
        public void onClick(View v) 
        { 

         final ProgressDialog progDailog = ProgressDialog.show(MainScreen.this, null, "Loading ....", true); 
         final Handler handler = new Handler() 
         { 
          public void handleMessage(Message msg) 
          { 
           System.out.println("search"); 

           Intent myIntent = new Intent(MainScreen.this, xxxxscreen.class); 
           startActivity(myIntent); 
           MainScreen.this.finish(); 
           progDailog.dismiss(); 

          } 
         }; 

         new Thread() 
         { 
          public void run() 
          { 
           try 
           { 

            System.out.println(); 


            handler.sendEmptyMessage(1); 

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

        } 
       }); 

回答

1

創建int陣列ID的說array_id[]和設置ID,以錶行後ID添加到array_id[]也喜歡

tblrow.setId(j); 
array_id[j] = j; 

而且在OnClick方法做到這一點:

for(int i = 0;i< array_id.length;i++) 
{ 
    TableRow tbl_row = (TableRow) findViewById(i); 
    if(v.getId() == array_id[i]) 
    { 
     /** Perform your Operations */ 
    } 

} 
相關問題