私は映画のリストビューを持っています。ユーザーがムービーをクリックすると、そのディレクターの名前がToastに表示されます。Androidリストビュー、クリックでリスト内のアイテムの名前を取得
トーストが機能しています。私はその名前をどうやって取得するか分かりません。私は 変数あなたの最初のリストビューを見ることができない
私は映画のリストビューを持っています。ユーザーがムービーをクリックすると、そのディレクターの名前がToastに表示されます。Androidリストビュー、クリックでリスト内のアイテムの名前を取得
トーストが機能しています。私はその名前をどうやって取得するか分かりません。私は 変数あなたの最初のリストビューを見ることができない
、それは非常に簡単です.....
convertView.setOnClickListener(new View.OnClickListener() {
public void onClick(final View v) {
Toast.makeText(MainActivity.this, movieModelList.get(position).getDirector(),
Toast.LENGTH_LONG).show();
}
});
こんにちは、私はあなたの例に変更しました。また、エラーを避けるために public View getView(最終的なint位置、View convertView、ViewGroup parent)を変更しなければなりませんでした。 int位置をfinalに変更します。それはいいアイデアか悪い考えですか? – Kong
@Kongこのロジックは完璧です –
最終的な可変ポジションを作るのに何も間違っていません –
事前に
@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 with toast message on click
今すぐトーストをチェックできます
convertView.setOnClickListener(new View.OnClickListener() {
public void onClick(final View v) {
Toast.makeText(Context, "Name of Director"+movieModelList.getMethod(),
Toast.LENGTH_LONG).show();
}
});
EDIT
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();
}
});
が、これはあなたのお役に立てば幸いです。
なぜOnItemClickListenerを使用しないのですか? –
'movieModelList.get(position).getDirector()'を呼び出すだけです。 –
私はまだアンドロイド開発に慣れていません。 OnItemClickListenerを使用することを考えなかった – Kong