0
我試圖修改Android Studio中的庫存主/明細模板。我的主要目標是嘗試正確顯示簡單的List<Obj>
,我在onCreate()
中手動填充。 我的問題是,應該從ListActivity
傳遞到DetailActivity
(然後傳遞給片段)的附加內容沒有通過。Intent extras arent'passed in my modified master/detail template
的完整代碼here
我懷疑有一些錯誤的RecyclerView適配器(和持有人),我體改。我也不喜歡脫銷DummyContent類。
我也想知道是否最好刪除這個DummyContent類並創建自己的數據源,或者在所謂的真實生活中修改現有的Dummy內容源更簡單更方便。
如果您希望在這裏粘貼更多的代碼片段,請告訴我,預先感謝您的幫助。
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();
}