Android Studio에서 재고 마스터/세부 템플릿을 수정하려고합니다. 내 주요 목표는 올바르게 List<Obj>
을 표시하고 올바르게 표시하는 것이며, 이는 수동으로 onCreate()
에서 채 웁니다. 내 문제는 ListActivity
에서 DetailActivity
으로 전달 된 다음 (조각으로 전달 된) 추가 정보가 전달되지 않는 것입니다.인 텐트 엑스트라가 수정 된 마스터/세부 템플릿에 전달되지 않았습니다.
전체 코드 here
내가 약간 변형 한 RecyclerView 어댑터 (홀더)에 문제가있다 생각한다. 재고가없는 DummyContent 클래스도 마음에 들지 않습니다.
나는 또한이 DummyContent 클래스를 제거하고 자신의 데이터 소스를 만드는 것이 더 좋을지, 아니면 실제 삶에서 기존 더미 소스를 수정하는 것이 더 쉽고 편리하다는 의견을 제시하고 싶습니다.
더 많은 코드 스 니펫을 여기에 붙여 넣으려면 미리 알려 주셔서 감사합니다.
public class SimpleItemRecyclerViewAdapter
extends RecyclerView.Adapter<SimpleItemRecyclerViewAdapter.ViewHolder> {
private final List<Obj> mValues;
public SimpleItemRecyclerViewAdapter(List<Obj> items) {
mValues = items;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.data_list_content, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
holder.obj = mValues.get(position);
holder.name.setText(holder.obj.getName());
holder.image.setText(holder.obj.getImage());
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mTwoPane) {
Bundle arguments = new Bundle();
arguments.putString(Keys.KLUCZ, holder.obj.getName()); // tutaj musze przeslac Id
DataDetailFragment fragment = new DataDetailFragment();
fragment.setArguments(arguments);
getSupportFragmentManager().beginTransaction()
.replace(R.id.data_detail_container, fragment)
.commit();
} else {
Context context = v.getContext();
Intent intent = new Intent(context, DataDetailActivity.class);
intent.putExtra(Keys.KLUCZ, holder.obj.getName());
Log.d("DataListActivity", "obj.getName = "+holder.obj.getName());
context.startActivity(intent);
}
}
});
}
@Override
public int getItemCount() {
return mValues.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public final TextView name;
public final TextView image;
public final View mView;
public Obj obj;
public ViewHolder(View view) {
super(view);
mView = view;
name = (TextView) view.findViewById(R.id.id);
image = (TextView) view.findViewById(R.id.content);
}
}
그리고 수신 활동 :
if (savedInstanceState == null) {
// Create the detail fragment and add it to the activity
// using a fragment transaction.
Bundle arguments = new Bundle();
arguments.putString(Keys.KLUCZ,
getIntent().getStringExtra(Keys.KLUCZ));
DataDetailFragment fragment = new DataDetailFragment();
fragment.setArguments(arguments);
getSupportFragmentManager().beginTransaction()
.add(R.id.data_detail_container, fragment)
.commit();
}