Android Listview,单击获取列表中项目的名称
我有一个电影列表。当用户点击一部电影时,我希望该导演的名字出现在祝酒词中 祝酒词起作用了。我只是不知道怎么叫这个名字Android Listview,单击获取列表中项目的名称,android,listview,android-studio,Android,Listview,Android Studio,我有一个电影列表。当用户点击一部电影时,我希望该导演的名字出现在祝酒词中 祝酒词起作用了。我只是不知道怎么叫这个名字 @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if(convertView == null){ holder = new ViewHolder(
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView == null){
holder = new ViewHolder();
convertView = inflater.inflate(resource, null);
holder.ivMovieIcon = (ImageView)convertView.findViewById(R.id.ivIcon);
holder.tvMovie = (TextView)convertView.findViewById(R.id.tvMovie);
holder.tvTagline = (TextView)convertView.findViewById(R.id.tvTagline);
holder.tvYear = (TextView)convertView.findViewById(R.id.tvYear);
holder.tvDuration = (TextView)convertView.findViewById(R.id.tvDuration);
holder.tvDirector = (TextView)convertView.findViewById(R.id.tvDirector);
holder.rbMovieRating = (RatingBar)convertView.findViewById(R.id.rbMovie);
holder.tvCast = (TextView)convertView.findViewById(R.id.tvCast);
holder.tvStory = (TextView)convertView.findViewById(R.id.tvStory);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
convertView.setOnClickListener(new View.OnClickListener() {
public void onClick(final View v) {
Toast.makeText(MainActivity.this, "Name of Director",
Toast.LENGTH_LONG).show();
}
});
final ProgressBar progressBar = (ProgressBar) convertView.findViewById(R.id.progressBar);
ImageLoader.getInstance().displayImage(movieModelList.get(position).getImage(), holder.ivMovieIcon, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
progressBar.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
progressBar.setVisibility(View.GONE);
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
progressBar.setVisibility(View.GONE);
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
progressBar.setVisibility(View.GONE);
}
});
holder.tvMovie.setText(movieModelList.get(position).getMovie());
holder.tvTagline.setText(movieModelList.get(position).getTagline());
holder.tvYear.setText("Year: " + movieModelList.get(position).getYear());
holder.tvDuration.setText("Duration: " + movieModelList.get(position).getDuration());
holder.tvDirector.setText("Director: " + movieModelList.get(position).getDirector());
// rating bar
holder.rbMovieRating.setRating(movieModelList.get(position).getRating()/2);
StringBuffer stringBuffer = new StringBuffer();
for(MovieModel.Cast cast : movieModelList.get(position).getCastList()){
stringBuffer.append(cast.getName() + ", ");
}
holder.tvCast.setText("Cast:" + stringBuffer);
holder.tvStory.setText(movieModelList.get(position).getStory());
return convertView;
}
class ViewHolder{
private ImageView ivMovieIcon;
private TextView tvMovie;
private TextView tvTagline;
private TextView tvYear;
private TextView tvDuration;
private TextView tvDirector;
private RatingBar rbMovieRating;
private TextView tvCast;
private TextView tvStory;
}
提前感谢我看不到您的初始Listview变量 也许这能解决你的问题伙计 这很简单
convertView.setOnClickListener(new View.OnClickListener() {
public void onClick(final View v) {
Toast.makeText(MainActivity.this, movieModelList.get(position).getDirector(),
Toast.LENGTH_LONG).show();
}
});
你现在可以检查你的吐司了
convertView.setOnClickListener(new View.OnClickListener() {
public void onClick(final View v) {
Toast.makeText(Context, "Name of Director"+movieModelList.getMethod(),
Toast.LENGTH_LONG).show();
}
});
编辑
listViewObj.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// Toast
Toast.makeText(getApplicationContext(),
((TextView) view).getText(), Toast.LENGTH_SHORT).show();
}
});
listViewObj.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//吐司
Toast.makeText(getApplicationContext(),
((TextView)view.getText(),Toast.LENGTH_SHORT.show();
}
});
希望这对您有所帮助。为什么不使用
OnItemClickListener
?只需调用movieModelList.get(position).getDirector()
我对android开发还是新手。没有想到要使用OnItemClickListenerHi,我把它改为movieModelList.get(position.getDirector()。我还必须更改公共视图getView(final int position、View convertView、ViewGroup parent)。以避免错误。将int位置更改为final。这是个好主意还是个坏主意我把它改成了你的例子。我还必须更改公共视图getView(final int position、View convertView、ViewGroup parent)以避免错误。将int位置更改为final。这是个好主意还是个坏主意。@Kong这个逻辑是正确的perfect@Kong确定最终可变位置没有问题