如何在Android应用程序中获取位置项?

如何在Android应用程序中获取位置项?,android,listview,android-fragments,textview,android-adapter,Android,Listview,Android Fragments,Textview,Android Adapter,这是我的密码。我想得到这个职位 下面:片段PizzaFragment: import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; imp

这是我的密码。我想得到这个职位

下面:片段PizzaFragment:

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class PizzaFragment extends Fragment implements ClickListener {
    public  String url ="http://my_url/query_android/piatticategoria.php";
    public ArrayList<String> values = new ArrayList<String>();
    public  RecyclerViewAdapter listAdapter;
    RecyclerView recyclerView;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment, container, false);
        return rootView;
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        get(url);
        recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);


    }
    //Method of your interface
    public void itemlistener(int position){

//Here you get the position in your activity.
        Toast.makeText( getContext().getApplicationContext(), ""+position, Toast.LENGTH_SHORT ).show();
    }



    public void get(String url) {
        //init queue or get from somewhe
        RequestQueue queue = Volley.newRequestQueue(getContext());
        StringRequest stringRequest;
        stringRequest = new StringRequest(Request.Method.POST, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONObject obj = new JSONObject(response);
                            JSONArray jsonArray = obj.getJSONArray("dati");
                            //JSONObject jsonObject = jsonArray.getJSONObject(0);

                            values.clear();
                            for (int i =0;i<jsonArray.length();i++){
                                JSONObject jsonObject = jsonArray.getJSONObject(i);
                                values.add (jsonObject.getString("nome"));

                            }

                            String[] mStringArray = new String[values.size()];
                            mStringArray = values.toArray(mStringArray);
                            RecyclerViewAdapter adapter = new RecyclerViewAdapter(mStringArray);
                            // RecyclerViewAdapter adapter = new RecyclerViewAdapter(mStringArray);
                            LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());

                            recyclerView.setLayoutManager(layoutManager);
                            recyclerView.setAdapter(adapter);



                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                        //got our Response as response
                        //same to make any call to UI thread
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                //got error
            }
        }) {
            @Override
            protected Map<String,String> getParams(){
                Map<String,String> params = new HashMap<String, String>();
                params.put("id", Integer.toString(5));

                return params;

            }
        };
        queue.add(stringRequest);

    }


}
这是recycler\u view\u list\u item.xml:

        <?xml version="1.0" encoding="utf-8"?>


    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <TextView
                    android:id="@+id/list_item"
                    android:textSize="18sp"
                    android:paddingTop="@dimen/activity_vertical_margin"
                    android:paddingBottom="@dimen/activity_vertical_margin"
                    android:paddingRight="8dp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />



     <View
                android:id="@+id/separator"
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:background="#858585" />
        </RelativeLayout>

这是activity_pizza.xml:

 <?xml version="1.0" encoding="utf-8"?>
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:orientation="vertical">

            <!--  List View  -->
            <ListView
                android:id="@+id/list_view"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:scrollbars="none" />

        </LinearLayout>

首先,您的活动不是活动,而是一个片段,请重命名它。然后让您的活动实现您的接口并将其传递给适配器,如下所示:

public class PizzaFragment extends Fragment implements ClickListener {
    public  String url ="http://myurl/query_android/piatticategoria.php";
    public ArrayList<String> values = new ArrayList<String>();
    public  RecyclerViewAdapter listAdapter;
    RecyclerView recyclerView;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment, container, false);
        return rootView;
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        get(url);
        recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
    }

//Method of your interface
public void itemlistener(int position){
//Here you get the position in your activity.
}
现在,在适配器中,您必须订阅侦听器并进行绑定:

    public class RecyclerViewAdapter extends RecyclerView.Adapter<TextItemViewHolder> {

        String[] items;

        ClickListener clicklistener;

        public RecyclerViewAdapter(String[] items, ClickListener clicklistener) {
            this.items = items;
            this.clicklistener = clicklistener;
        }


        public RecyclerViewAdapter(String[] items) {
            this.items = items;
        }

        @Override
        public TextItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view_list_item, parent, false);
            return new TextItemViewHolder(view);
        }


        @Override
        public void onBindViewHolder(TextItemViewHolder holder, final int position) {
            holder.bind(items[position]);
            holder.yourItemView.setOnClickListener(new View.OnClickListener(){
           @Override
           public void onClick(View view) {
              if (clickListener !=null){
               clickListener.itemlistener(position);
              }
            );   
           }

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

        @Override
        public int getItemCount() {
            return items.length;
        }
    }
公共类RecycleServiceAdapter扩展了RecyclerView.Adapter{
字符串[]项;
点击监听器点击监听器;
公共RecycleServiceAdapter(字符串[]项,ClickListener ClickListener){
这个项目=项目;
this.clicklistener=clicklistener;
}
公共RecycleServiceAdapter(字符串[]项){
这个项目=项目;
}
@凌驾
public TextItemViewHolder onCreateViewHolder(视图组父级,int-viewType){
查看视图=LayoutFlater.from(parent.getContext()).flate(R.layout.recycler\u View\u list\u项,parent,false);
返回新的TextItemViewHolder(视图);
}
@凌驾
BindViewHolder上的公共无效(TextItemViewHolder,最终int位置){
持有人绑定(项目[位置]);
holder.yourItemView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
如果(clickListener!=null){
单击Listener.itemlistener(位置);
}
);   
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
public int getItemCount(){
返回项目。长度;
}
}
public class PizzaFragment extends Fragment implements ClickListener {
    public  String url ="http://myurl/query_android/piatticategoria.php";
    public ArrayList<String> values = new ArrayList<String>();
    public  RecyclerViewAdapter listAdapter;
    RecyclerView recyclerView;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment, container, false);
        return rootView;
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        get(url);
        recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
    }

//Method of your interface
public void itemlistener(int position){
//Here you get the position in your activity.
}
     RecyclerViewAdapter adapter = new RecyclerViewAdapter(mStringArray, this);
    public class RecyclerViewAdapter extends RecyclerView.Adapter<TextItemViewHolder> {

        String[] items;

        ClickListener clicklistener;

        public RecyclerViewAdapter(String[] items, ClickListener clicklistener) {
            this.items = items;
            this.clicklistener = clicklistener;
        }


        public RecyclerViewAdapter(String[] items) {
            this.items = items;
        }

        @Override
        public TextItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view_list_item, parent, false);
            return new TextItemViewHolder(view);
        }


        @Override
        public void onBindViewHolder(TextItemViewHolder holder, final int position) {
            holder.bind(items[position]);
            holder.yourItemView.setOnClickListener(new View.OnClickListener(){
           @Override
           public void onClick(View view) {
              if (clickListener !=null){
               clickListener.itemlistener(position);
              }
            );   
           }

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

        @Override
        public int getItemCount() {
            return items.length;
        }
    }