如何将Textview数据从回收者视图带到另一个活动? [英] How to take textview data from recycler view to another activity?

查看:50
本文介绍了如何将Textview数据从回收者视图带到另一个活动?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从回收者视图中将textview数据带到另一个活动中. workshop_name TextView到Otheractivity.

I want to take textview data from recycler view to another activity.I want to take workshop_name TextView to Otheractivity.

这是我的代码.

MechSearchActivity.java

MechSearchActivity.java

public class MechSearchActivity extends AppCompatActivity {
List<SearchResponse.WorkshopDataBean> workshopList;
RecyclerView recyclerView;
  @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.search_mec);

recyclerView = (RecyclerView) findViewById(R.id.rv_workshoplist);

callSearchApi();

onItemClick();
 }

   public void callSearchApi() {


    ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);
    Call<SearchResponse> call = apiService.getSearchData( "workshop_name","image", "street",  "locality", "city"); // single search for all the values
    call.enqueue(new Callback<SearchResponse>() {

        @Override
        public void onResponse(Call<SearchResponse> call, retrofit2.Response<SearchResponse> response) {
            SearchResponse searchResponse = response.body();
           workshopList = searchResponse.getWorkshopData();
            MechanicRecyclerAdapter adapter = new MechanicRecyclerAdapter(MechSearchActivity.this, workshopList);
            recyclerView.setAdapter(adapter);
            LinearLayoutManager mGridLayoutManager = new LinearLayoutManager(MechSearchActivity.this); // (Context context, int spanCount)
            recyclerView.setLayoutManager(mGridLayoutManager);

        }

        @Override
        public void onFailure(Call<SearchResponse> call, Throwable t) {


      }
    });
}
private void onItemClick() {

    final GestureDetector mGestureDetector = new GestureDetector(MechSearchActivity.this, new GestureDetector.SimpleOnGestureListener() {
        @Override
        public boolean onSingleTapUp(MotionEvent e) {
            return true;
        }
    });

    recyclerView_ws.addOnItemTouchListener(new 
    RecyclerView.OnItemTouchListener() {
        @Override
        public boolean onInterceptTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {
            View child = recyclerView.findChildViewUnder(motionEvent.getX(), motionEvent.getY());

            if (child != null && mGestureDetector.onTouchEvent(motionEvent)) {
                int position = recyclerView.getChildPosition(child);
                String workshop_name = workshopList.get(position).getWorkshop_name();

                Intent intent = new Intent(MechSearchActivity.this, OtherActivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                intent.putExtra("workshop_name", workshop_name);
                startActivity(intent);
                return true;

            }

            return false;
        }

        @Override
        public void onTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {

        }

        @Override
        public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

        }
    });
}
}

MechRecyclerAdapter.java

MechRecyclerAdapter.java

 public class MechanicRecyclerAdapter extends RecyclerView.Adapter<MechanicRecyclerAdapter.MyViewHolder> {

private static final String TAG = MechanicRecyclerAdapter.class.getSimpleName();
Context mContext;
private LayoutInflater inflater;
String vehicle_type;

List<SearchResponse.WorkshopDataBean> workshopList;

public MechanicRecyclerAdapter(Context context,  List<SearchResponse.WorkshopDataBean> workshopList) {
    inflater = LayoutInflater.from(context);
    this.workshopList = workshopList;
    mContext = context;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = inflater.inflate(R.layout.single_workshop, parent, false);
    MyViewHolder holder = new MyViewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    SearchResponse.WorkshopDataBean current = workshopList.get(position);
    String ws_name = workshopList.get(position).getWorkshop_name();

     holder.tv_workshopname.setText(ws_name);


}


@Override
public int getItemCount() {
    return workshopList.size();
}


class MyViewHolder extends RecyclerView.ViewHolder  {
    SearchResponse.WorkshopDataBean current;
    TextView tv_workshopname;

     public MyViewHolder(View itemView) {
        super(itemView);
        tv_workshopname = (TextView) itemView.findViewById(workshop_name);
       }
      }
      }

OtherActivity.java

OtherActivity.java

public class OtherActivity extends AppCompatActivity {

TextView SingleWorkshopName;
String workshop_name;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.otheractivity);
    SingleWorkshopName=(TextView)findViewById(R.id.single_workshop_name);
    Bundle extras = getIntent().getExtras();
    workshop_name = extras.getString("workshop_name", null);
}
}

推荐答案

为此,您需要在MechanicRecyclerAdapter

 public interface OnListItemClick {
    void onItemClick(int position);
}

onBindViewHolder()中的

使用以下代码分配点击次数

in onBindViewHolder() assign your click by using following code

viewHolder.main_layout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onListItemClick.onItemClick(position);
            }
        });

在您中实现此接口MechSearchActivity,您将使用位置在活动中获得onItemClick()方法,您将获得正确的行名,并使用intent.putExtra("workshop_name", workshop_name);

Implements this interface in you MechSearchActivity you will get onItemClick() method in your activity using position you will get proper name of row and pass to other activity using intent.putExtra("workshop_name", workshop_name);

这篇关于如何将Textview数据从回收者视图带到另一个活动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆