2015-03-24 13 views
-1

好吧,我有程序運行所有我需要的是如何讓它顯示每個人的照片在烤麪包的名稱,當有人點擊它的建議。現在味精顯示家庭照片(顯示數組中的項目位置的數字)我想說家庭照片(家庭成員姓名)我如何去做這個下面是我的代碼。在android應用程序中使用數組

package com.example.personalphoto; 
 

 
import android.support.v7.app.ActionBarActivity; 
 
import android.content.Context; 
 
import android.os.Bundle; 
 
import android.view.Menu; 
 
import android.view.MenuItem; 
 
import android.view.View; 
 
import android.view.ViewGroup; 
 
import android.widget.AdapterView; 
 
import android.widget.AdapterView.OnItemClickListener; 
 
import android.widget.BaseAdapter; 
 
import android.widget.GridView; 
 
import android.widget.ImageView; 
 
import android.widget.Toast; 
 

 
public class MainActivity extends ActionBarActivity { 
 
\t Integer[] Family = {R.drawable.ed, R.drawable.eddie2, R.drawable.fenrir, R.drawable.george, R.drawable.gwendi, R.drawable.marylou, R.drawable.tonda, R.drawable.wayne,}; 
 
\t ImageView pic; 
 

 
\t @Override 
 
\t protected void onCreate(Bundle savedInstanceState) { 
 
\t \t super.onCreate(savedInstanceState); 
 
\t \t setContentView(R.layout.activity_main); 
 
\t \t GridView gr = (GridView)findViewById(R.id.gridView1); 
 
\t \t final ImageView pic= (ImageView)findViewById(R.id.imgLarge); 
 
\t \t gr.setAdapter(new ImageAdapter(this)); 
 
\t \t gr.setOnItemClickListener(new OnItemClickListener() { 
 

 
\t \t \t @Override 
 
\t \t \t public void onItemClick(AdapterView<?> arg0, View arg1, 
 
\t \t \t \t \t int arg2, long arg3) { 
 
\t \t \t \t // TODO Auto-generated method stub 
 
\t \t \t \t Toast.makeText(getBaseContext(), "Family photo of " + (arg2 + 1), Toast.LENGTH_SHORT).show(); 
 
\t \t \t \t pic.setImageResource(Family[arg2]); 
 
\t \t \t \t 
 
\t \t \t } 
 
\t \t }); 
 
\t } 
 
\t public class ImageAdapter extends BaseAdapter{ 
 
\t \t private Context context; 
 
\t public ImageAdapter(Context c) { 
 
\t \t \t // TODO Auto-generated constructor stub 
 
\t \t context=c; 
 
\t \t } 
 

 
\t @Override 
 
\t public int getCount() { 
 
\t \t // TODO Auto-generated method stub 
 
\t \t return Family.length; 
 
\t } 
 

 
\t @Override 
 
\t public Object getItem(int position) { 
 
\t \t // TODO Auto-generated method stub 
 
\t \t return null; 
 
\t } 
 

 
\t @Override 
 
\t public long getItemId(int position) { 
 
\t \t // TODO Auto-generated method stub 
 
\t \t return 0; 
 
\t } 
 

 
\t @Override 
 
\t public View getView(int arg0, View arg1, ViewGroup arg2) { 
 
\t \t // TODO Auto-generated method stub 
 
\t \t pic = new ImageView(context); 
 
\t \t pic.setImageResource(Family[arg0]); 
 
\t \t pic.setScaleType(ImageView.ScaleType.FIT_XY); 
 
\t \t pic.setLayoutParams(new GridView.LayoutParams(120,120)); 
 
\t \t return pic; 
 
\t } 
 
\t } 
 
}

+0

可能是你需要的,''Toast.makeText(getBaseContext(),「家庭照片」+ getResources()。getResourceEntryName(Family [arg2]),Toast.LENGTH_SHORT).show();' – user370305 2015-03-24 21:16:19

+1

@ user370305謝謝這是我需要的一羣夥伴 – 2015-03-24 22:58:55

回答

0

的首先

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return 0; 
} 

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return Family[position]; 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

次級:

@Override 
public View getView(int arg0, View arg1, ViewGroup arg2) { 
    // TODO Auto-generated method stub 
    pic = new ImageView(context); 
    pic.setImageResource(Family[arg0]); 
    pic.setScaleType(ImageView.ScaleType.FIT_XY); 
    pic.setLayoutParams(new GridView.LayoutParams(120,120)); 
    return pic; 
} 

@Override 
public View getView(int arg0, View arg1, ViewGroup arg2) { 
    // TODO Auto-generated method stub 
    ImageView view; 
    if(arg1 == null) { 
      view= new ImageView(context); 
      view.setImageResource(Family[arg0]); 
      view.setScaleType(ImageView.ScaleType.FIT_XY); 
      view.setLayoutParams(new GridView.LayoutParams(120,120)); 
    } else { 
      view = (ImageView) arg1; 
      view.setImageResource(Family[arg0]); 
      view.setScaleType(ImageView.ScaleType.FIT_XY); 
      view.setLayoutParams(new GridView.LayoutParams(120,120)); 
    } 
    return view; 
} 

此外讀到ViewHolder圖案和this

關於你的答案

I want to to say Family photo of (family members name) how can i go about doing this below is my code. 

你需要實現一個包含照片和照片描述的結構,就像一個

public class FamilyInfo { 
    public int resourceId;// your image 
    public String description;// Your family member name description. 
} 

而在你的應用程序中使用。怎麼使用 - 所以我沒有耐心在這裏解釋如何做到這一點。抱歉。

相關問題