2016-07-25 8 views
2

私は映画のリストビューを持っています。ユーザーがムービーをクリックすると、そのディレクターの名前がToastに表示されます。Androidリストビュー、クリックでリスト内のアイテムの名前を取得

トーストが機能しています。私はその名前をどうやって取得するか分かりません。私は 変数あなたの最初のリストビューを見ることができない

+0

なぜOnItemClickListenerを使用しないのですか? –

+1

'movieModelList.get(position).getDirector()'を呼び出すだけです。 –

+0

私はまだアンドロイド開発に慣れていません。 OnItemClickListenerを使用することを考えなかった – Kong

答えて

2

、それは非常に簡単です.....

convertView.setOnClickListener(new View.OnClickListener() { 
      public void onClick(final View v) { 
       Toast.makeText(MainActivity.this, movieModelList.get(position).getDirector(), 
         Toast.LENGTH_LONG).show(); 
      } 
     }); 
+0

こんにちは、私はあなたの例に変更しました。また、エラーを避けるために public View getView(最終的なint位置、View convertView、ViewGroup parent)を変更しなければなりませんでした。 int位置をfinalに変更します。それはいいアイデアか悪い考えですか? – Kong

+0

@Kongこのロジックは完璧です –

+0

最終的な可変ポジションを作るのに何も間違っていません –

0

事前に

@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

0

今すぐトーストをチェックできます

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(); 
      } 
     }); 

が、これはあなたのお役に立てば幸いです。

関連する問題