【发布时间】:2018-05-28 10:22:34
【问题描述】:
我有两个不同的活动,这两个活动导致一个活动,我正在根据收到的意图设置结果活动的文本但是当我运行应用程序时,我只从第一个活动中获得意图,我在谷歌上搜索相同但不能明白我哪里错了。 我认为条件有一些错误,但如果有人可以在这里指导我,请不要在哪里。 我的 ResultActivity 代码
Bundle extras = getIntent().getExtras();
if(extras != null) {
if(extras.containsKey("title")) {
// title_text = getIntent().getStringExtra("");
title_text = extras.getString("title");
toolbar_title.setText(title_text);
}
}
else{
title_text2 = getIntent().getStringExtra("title2");
//title_text2 = extras.getString("title2");
toolbar_title.setText(title_text2);
}
FirstActivity.class
public void startMoreDetailActivity(){
Intent startintent = new Intent(this, Main_Page_Details.class);
startintent.putExtra("title",title_text);
startActivity(startintent);
}
SecondActivity(在回收站视图中)
public void startMoreDetailActivity(){
Intent startintent = new Intent(context, Main_Page_Details.class);
int position = getAdapterPosition();
startintent.putExtra("title2",title_text);
context.startActivity(startintent);
}
我的适配器类
public class SnapAdapter extends RecyclerView.Adapter<SnapAdapter.ViewHolder> implements GravitySnapHelper.SnapListener {
public static final int VERTICAL = 0;
public static final int HORIZONTAL = 1;
private Context context;
private ArrayList<Snap> mSnaps;
// Disable touch detection for parent recyclerView if we use vertical nested recyclerViews
private View.OnTouchListener mTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
v.getParent().requestDisallowInterceptTouchEvent(true);
return false;
}
};
public SnapAdapter(Context context) {
mSnaps = new ArrayList<>();
this.context = context;
}
public void addSnap(Snap snap) {
mSnaps.add(snap);
}
@Override
public int getItemViewType(int position) {
Snap snap = mSnaps.get(position);
switch (snap.getGravity()) {
case Gravity.CENTER_VERTICAL:
return VERTICAL;
case Gravity.CENTER_HORIZONTAL:
return HORIZONTAL;
case Gravity.START:
return HORIZONTAL;
case Gravity.TOP:
return VERTICAL;
case Gravity.END:
return HORIZONTAL;
case Gravity.BOTTOM:
return VERTICAL;
}
return HORIZONTAL;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = viewType == VERTICAL ? LayoutInflater.from(parent.getContext())
.inflate(R.layout.adapter_snap_vertical, parent, false)
: LayoutInflater.from(parent.getContext())
.inflate(R.layout.adapter_snap, parent, false);
if (viewType == VERTICAL) {
view.findViewById(R.id.recyclerView).setOnTouchListener(mTouchListener);
}
return new ViewHolder(view,context);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Snap snap = mSnaps.get(position);
holder.snapTextView.setText(snap.getText());
if (snap.getGravity() == Gravity.START || snap.getGravity() == Gravity.END) {
holder.recyclerView.setLayoutManager(new LinearLayoutManager(holder
.recyclerView.getContext(), LinearLayoutManager.HORIZONTAL, false));
holder.recyclerView.setOnFlingListener(null);
new GravitySnapHelper(snap.getGravity(), false, this).attachToRecyclerView(holder.recyclerView);
} else if (snap.getGravity() == Gravity.CENTER_HORIZONTAL) {
holder.recyclerView.setLayoutManager(new LinearLayoutManager(holder
.recyclerView.getContext(), snap.getGravity() == Gravity.CENTER_HORIZONTAL ?
LinearLayoutManager.HORIZONTAL : LinearLayoutManager.VERTICAL, false));
holder.recyclerView.setOnFlingListener(null);
new LinearSnapHelper().attachToRecyclerView(holder.recyclerView);
} else if (snap.getGravity() == Gravity.CENTER) { // Pager snap
holder.recyclerView.setLayoutManager(new LinearLayoutManager(holder
.recyclerView.getContext(), LinearLayoutManager.HORIZONTAL, false));
holder.recyclerView.setOnFlingListener(null);
new PagerSnapHelper().attachToRecyclerView(holder.recyclerView);
} else { // Top / Bottom
holder.recyclerView.setLayoutManager(new LinearLayoutManager(holder
.recyclerView.getContext()));
holder.recyclerView.setOnFlingListener(null);
new GravitySnapHelper(snap.getGravity()).attachToRecyclerView(holder.recyclerView);
}
holder.recyclerView.setAdapter(new Adapter(snap.getGravity() == Gravity.START
|| snap.getGravity() == Gravity.END
|| snap.getGravity() == Gravity.CENTER_HORIZONTAL,
snap.getGravity() == Gravity.CENTER, snap.getApps()));
}
@Override
public int getItemCount() {
return mSnaps.size();
}
@Override
public void onSnap(int position) {
Log.d("Snapped: ", position + "");
}
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
public static CustomTextViewMedium snapTextView;
public RecyclerView recyclerView;
public ImageView see_more_image2;
public Context context;
String title_text;
public ViewHolder(View itemView, Context context) {
super(itemView);
this.context = context;
snapTextView = (CustomTextViewMedium) itemView.findViewById(R.id.snapTextView);
recyclerView = (RecyclerView) itemView.findViewById(R.id.recyclerView);
see_more_image2 = (ImageView)itemView.findViewById(R.id.see_more_image2);
title_text = snapTextView.getText().toString();
itemView.setOnClickListener(this);
see_more_image2.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.see_more_image2:
startMoreDetailActivity();
}
}
public void startMoreDetailActivity(){
Intent startintent = new Intent(context, Main_Page_Details.class);
int position = getAdapterPosition();
startintent.putExtra("title",title_text);
context.startActivity(startintent);
}
}
}
【问题讨论】:
-
还可以从您通过意图发送数据的位置发布您的代码。
-
如果 extras 为空,为什么还要获取数据?