Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Listview,单击获取列表中项目的名称_Android_Listview_Android Studio - Fatal编程技术网

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确定最终可变位置没有问题