0

我有一個列表活動,其中我顯示的圖像和文本在一行。發送列表項目的靜態圖像和文本到下一個活動,同時點擊在Android的列表活動

圖像是靜態的,它們被放置在可繪製的文件夾中。

我想在下一個活動中打印圖像和文本,同時單擊列表項目。我可以成功發送下一個活動的文本視圖。但是我發現將圖像發送到下一個窗口很困難。因爲這些是靜態的。

任何人都可以幫助我解決這個問題。提前致謝。

 public class Myimage extends ListActivity { 

     private LayoutInflater mInflater; 
     static Vector<RowData> data = new Vector<RowData>(); 
     RowData rd; 
     static boolean fromCategory = false; 
     static final String[] title = new String[] { 
       "One", "Two", "Three "}; 

     private Integer[] img = { 
      R.drawable.i,R.drawable.im,R.drawable.ima}; 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     mInflater = 

(LayoutInflater) getSystemService(
    Activity.LAYOUT_INFLATER_SERVICE); 

    for(int i=0;i<title.length;i++){ 
    try { 
     rd = new RowData(i,title[i]); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     data.add(rd); 
    } 
     CustomAdapter adapter = new CustomAdapter(this, R.layout.list, 
             R.id.title, data); 
     setListAdapter(adapter); 
     getListView().setTextFilterEnabled(true); 

    // This is the List Item Click method which i should work to send the image on next activity. 




    public void onListItemClick(ListView parent, View v, int position, 
       long id) { 
      Intent intent = new Intent(this,Second.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 






     } 
    public class RowData { 

       protected int mId; 
       protected String mTitle; 

       RowData(int id,String title){ 
       mId=id; 
       mTitle = title; 

      } 
       public void setTitle(String title) { 
       this.mTitle = title.trim(); 
      } 

       public String getTitle() { 
       return mTitle; 
      } 
       public void setId(int i){ 
        this.mId=i; 
        } 
       public int getId(){ 
        return mId; 
       } 


       @Override 
       public String toString() { 
         return mId+" "+mTitle; 
       } 
     } 




      private class CustomAdapter extends ArrayAdapter<RowData> { 
      public CustomAdapter(Context context, int resource, 
           int textViewResourceId, List<RowData> objects) {    
     super(context, resource, textViewResourceId, objects); 
     } 
       @Override 
       public View getView(int position, View convertView, ViewGroup parent) { 
       ViewHolder holder = null; 
       TextView title = null; 

       ImageView i11=null; 
       RowData rowData= getItem(position); 
       if(null == convertView){ 
        convertView = mInflater.inflate(R.layout.list, null); 
        holder = new ViewHolder(convertView); 
        convertView.setTag(holder); 
     } 
        holder = (ViewHolder) convertView.getTag(); 
        title = holder.gettitle(); 
        title.setText(rowData.mTitle); 

        i11=holder.getImage(); 
        i11.setImageResource(img[rowData.mId]); 
        return convertView; 
     } 
        private class ViewHolder { 
        private View mRow; 
        private TextView title = null; 

        private ImageView i11=null; 
        public ViewHolder(View row) { 
        mRow = row; 
     } 
       public TextView gettitle() { 
        if(null == title){ 
         title = (TextView) mRow.findViewById(R.id.title); 
         } 
        return title; 
       }  

       public ImageView getImage() { 
        if(null == i11){ 
          i11 = (ImageView) mRow.findViewById(R.id.img); 
               } 
         return i11; 
       } 
      } 
      } } 
+0

因爲我寫的東西我在我的代碼已經爲解決這個問題將來用戶以下內容:在第一個活動,我寫公共無效onListItemClick(ListView的父母,視圖V ,int position, long id){ \t \t Intent intent = new Intent(Myimage.this,Second.class); \t \t intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); \t \t RowData rd = data.get(position); \t \t \t \t \t String temp = rd.getTitle()+「splitter」+ img [position]; \t \t \t \t \t \t \t \t \t intent.putExtra( 「medata」,溫度); \t \t startActivity(intent); \t \t \t \t \t \t \t } –

+0

AND IN第二個活動我寫:捆綁額外= getIntent()getExtras(); \t String tempArr = extras.getString(「medata」); String arr [] = tempArr.split(「splitter」); int aInt = Integer.parseInt(arr [1]); ImageView image =(ImageView)this.findViewById(R.id.imageView1); image.setImageResource(aInt); \t \t \t TextView tv =(TextView)findViewById(R.id.textView1); tv.setText(arr [0]); \t其工作。 –

回答

1

您應該使用Bundle類發送文本和圖像。我建議你發送imageid(R.id.imageID)而不是發送到ImageView。

//Use It for setting value of Bundle variable 
    Intent intent = new Intent(CourtDetailActivity.thisDrivingDirection.class); 
    intent.putExtra("CourtId", courtId); 
    startActivity(intent); 
    //Use It for geting value of Bandle variable 
    Bundle extras = getIntent().getExtras(); 
    courtId = extras != null ? extras.getString("ImageId") : ""; 

    //You just copy and past given blow code in your code 
    public void onListItemClick(ListView parent, View v, int position, 
      long id) { 
     Intent intent = new Intent(this,Second.class); 

     intent.putExtra("ImageId", ""+img[position]); 
     startActivity(intent); 

    } 

我希望這對您有所幫助

+0

DynamicMind,你建議我發送圖片ID。但是,我如何獲得圖像ID。從列表視圖adapter.in我的做法我存儲圖像id的整數數組。當我調用Rowdata類的getId方法時,它返回一個數值。我是Android的初學者。請做一些必要的幫助。 –

+0

非常感謝DynamicMind。我做到了......哈爾哈...... –

相關問題