Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.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
Java 是否将当前项目位置传递给内部类?_Java_Android_Hashmap_Inner Classes - Fatal编程技术网

Java 是否将当前项目位置传递给内部类?

Java 是否将当前项目位置传递给内部类?,java,android,hashmap,inner-classes,Java,Android,Hashmap,Inner Classes,如何将当前Hashmap键位置传递给内部类 我需要传递数据。获取(位置)到我的内部类单击。通常我会宣布它是最终的,但我不知道在这种情况下是如何做到的 public class UpcomingGridViewAdapter extends BaseAdapter { public boolean pressedMovieItem; Context context; ArrayList<HashMap<String, String>> d

如何将当前Hashmap键位置传递给内部类

我需要传递数据。获取(位置)到我的内部类单击。通常我会宣布它是最终的,但我不知道在这种情况下是如何做到的

    public class UpcomingGridViewAdapter extends BaseAdapter {

    public boolean pressedMovieItem;

    Context context;
    ArrayList<HashMap<String, String>> data;
    HashMap<String, String> mylist = new HashMap<>();

    public UpcomingGridViewAdapter(Context a, ArrayList<HashMap<String, String>> d) {
        context = a;
        data = d;
    }

    public int getCount() {
        return data.size();
    }

    public HashMap<String, String> getItem(int position) {
        return data.get(position);
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(final int position, View convertView, ViewGroup parent) {

        if (convertView == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.upcoming_grid_item, parent, false);
        }
        final ImageView poster = (ImageView) convertView.findViewById(R.id.upcoming_image);




        mylist = data.get(position);


        final String posterPath = mylist.get("poster_path");


        // set image url correctly
        // sizes for image 45, 92, 154, 185, 300, 500
        final String url = "http://image.tmdb.org/t/p/w185" + posterPath;


        // load image url into poster
        Picasso.with(context).load(url).into(poster);

        // load image url into poster

        // Get onclick of item and pass data to singleitemview for upcoming

        convertView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {


          // need to pass data.get(position) to the inner class click
          new Click().execute();

            }
        });

        return convertView;


    }

    // Downloading data asynchronously
    class Click extends AsyncTask< Void, Void, Void> {

        @Override
        protected void onPreExecute() {

         // TODO setup progressdialog

        }

        @Override
        protected Void doInBackground(Void... params) {


            mylist = data.get(position); // need to get position 

            Intent intent = new Intent(context, UpcomingSingleItem.class);

            intent.putExtra("poster_path", mylist.get(Upcoming.TAG_POSTER));

            intent.putExtra("title", mylist.get(Upcoming.TAG_TITLE));

            intent.putExtra("release_date", mylist.get(Upcoming.TAG_RELEASE));

            intent.putExtra("overview", mylist.get(Upcoming.TAG_OVERVIEW));

            intent.putExtra("id", mylist.get(Upcoming.TAG_ID));

            intent.putExtra("vote_average", mylist.get(Upcoming.TAG_VOTE_AVG));


            context.startActivity(intent);


            return null;
        }


        @Override
        protected void onPostExecute(Void result) {

            super.onPostExecute(result);

           // TODO stop progressdialog
        }

    }

}
公共类UpcomingGridViewAdapter扩展了BaseAdapter{
公共布尔值pressedMovieItem;
语境;
阵列列表数据;
HashMap mylist=新建HashMap();
公共UpcomingGridViewAdapter(上下文a,ArrayList d){
上下文=a;
数据=d;
}
public int getCount(){
返回data.size();
}
公共HashMap getItem(int位置){
返回数据。获取(位置);
}
公共长getItemId(int位置){
返回位置;
}
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
if(convertView==null){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
convertView=充气机。充气(R.layout.Uncoming\u grid\u项,父项,false);
}
最终的ImageView海报=(ImageView)convertView.findViewById(R.id.u图像);
mylist=data.get(位置);
最终字符串posterPath=mylist.get(“poster_path”);
//正确设置图像url
//图像尺寸45、92、154、185、300、500
最终字符串url=”http://image.tmdb.org/t/p/w185“+后路径;
//将图像url加载到海报中
毕加索.with(context).load(url).into(海报);
//将图像url加载到海报中
//获取项的onclick并将数据传递给singleitemview,以备将来使用
convertView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//需要传递数据。获取(位置)到内部类单击
新建Click().execute();
}
});
返回视图;
}
//异步下载数据
类单击扩展异步任务{
@凌驾
受保护的void onPreExecute(){
//TODO设置进度对话框
}
@凌驾
受保护的Void doInBackground(Void…参数){
mylist=data.get(position);//需要获取位置
意向意向=新意向(上下文,UpcomingSingleItem.class);
intent.putExtra(“poster_path”,mylist.get(comming.TAG_poster));
intent.putExtra(“title”,mylist.get(comming.TAG_title));
intent.putExtra(“发布日期”,mylist.get(即将发布的.TAG_发布));
intent.putExtra(“概述”,mylist.get(即将推出的.TAG_概述));
intent.putExtra(“id”,mylist.get(comming.TAG_id));
intent.putExtra(“投票平均”,mylist.get(即将到来的.TAG\u投票平均值));
背景。开始触觉(意图);
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
super.onPostExecute(结果);
//TODO停止进程对话框
}
}
}

如果我没弄错,您只需要使用params执行异步任务。请参阅文档:


如果我没弄错,您只需要使用params执行异步任务。请参阅文档:


我认为您需要单击asynctask中的职位,以便在asynctask调用中传递您的职位:

new Click().execute(position);
然后使用如下参数接收:

mylist = data.get(params[0]); // get position here which is passed 

我认为您需要单击asynctask中的职位,以便在asynctask调用中传递您的职位:

new Click().execute(position);
然后使用如下参数接收:

mylist = data.get(params[0]); // get position here which is passed 

你试过为内部类使用构造函数吗?你试过为内部类使用构造函数吗?这非常有效。对不起,问题公式不准确。这是完美的。对不起,问题表述不准确