我有活動,並且此活動是可繪製的菜單。 裏面的drawable,我包括一些片段,在我的片段中,我用適配器顯示一些數據。當數據被點擊時,我嘗試做出行動,然後它會去其他片段。哦,是的,我嘗試從我的適配器發送一些值到片段。 請幫我無法從適配器轉到片段
這是我的適配器..
package com.skripsi.anna.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.skripsi.anna.MenuEdit;
import com.skripsi.anna.R;
import com.skripsi.anna.model.ModelMenu;
import java.util.List;
/**
* Created by gandhi on 6/11/17.
*/
public class BarangEditor extends RecyclerView.Adapter<BarangEditor.ViewHolder> {
private List<ModelMenu> modelMenus;
private Context context;
public BarangEditor(List<ModelMenu> modelMenus){
this.modelMenus = modelMenus;
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView namaBarang,hargaBarang;
public ViewHolder(View v) {
super(v);
namaBarang = (TextView) v.findViewById(R.id.nama_barang);
hargaBarang = (TextView) v.findViewById(R.id.harga);
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = getAdapterPosition();
ModelMenu modelMenu = modelMenus.get(position);
MenuEdit menuEdit = new MenuEdit();
menuEdit.newInstance(modelMenu.getIdMenu(),modelMenu.getNamaMenu(),modelMenu.getHargaMenu());
// i want to send this value to fragment
}
});
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_barang_editor, parent, false);
ViewHolder vh = new ViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
ModelMenu modelMenu = modelMenus.get(position);
holder.hargaBarang.setText(modelMenu.getHargaMenu());
holder.namaBarang.setText(modelMenu.getNamaMenu());
}
@Override
public int getItemCount() {
return modelMenus.size();
}
}
而且這是我的片段
package com.skripsi.anna;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class MenuEdit extends Fragment {
private String idMenu,namaMenu,hargaMenu;
private OnFragmentInteractionListener mListener;
public MenuEdit() {
}
public static MenuEdit newInstance(String idMenu, String namaMenu, String hargaMenu) {
MenuEdit fragment = new MenuEdit();
Bundle args = new Bundle();
args.putString("idMenu", idMenu);
args.putString("namaMenu", namaMenu);
args.putString("hargaMenu",hargaMenu);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
idMenu = getArguments().getString("idMenu");
namaMenu = getArguments().getString("namaMenu");
hargaMenu = getArguments().getString("hargaMenu");
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_menu_edit, container, false);
return view;
}
public void onButtonPressed(Uri uri) {
if (mListener != null) {
mListener.onFragmentInteraction(uri);
}
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnFragmentInteractionListener) {
mListener = (OnFragmentInteractionListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnFragmentInteractionListener");
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
public interface OnFragmentInteractionListener {
void onFragmentInteraction(Uri uri);
}
}
我有嘗試這個
FragmentTransaction ft = ((AppCompatActivity) context).getSupportFragmentManager().beginTransaction();
,但它使我的應用FC 並且它不工作
也請發佈應用崩潰後logcat的錯誤。 – DaveNOTDavid