-3
これは私のコードです。私はポジション項目を取得したい。フラグメントPizzaFragment:以下Androidアプリでポジションアイテムを取得するには?
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>