-3

这是我的代码。我想获得位置项目。如何获取Android应用程序中的位置项?

下图:片段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); 

    } 


} 

这是RecyclerViewAdapter.java:

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.textView.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; 


    } 
    } 

这是TextItemViewHolder:

import android.support.v7.widget.RecyclerView; 
import android.view.View; 
import android.widget.TextView; 

public class TextItemViewHolder extends RecyclerView.ViewHolder { 
    public TextView textView; 


    public TextItemViewHolder(View itemView) { 
     super(itemView); 
     textView = (TextView) itemView.findViewById(R.id.list_item); 
    } 

    public void bind(String text) { 
     textView.setText(text); 
    } 

} 

这是recycler_view_list_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> 

回答

0

首先,你的活动不是一项活动,是一个片段,所以将其重命名。然后做你的活动实现你的接口,并把它传递给你的适配器是这样的:

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; 
     } 
    } 
相关问题