为了账号安全,请及时绑定邮箱和手机立即绑定

如何将活动中的字符串值发送到适配器?

如何将活动中的字符串值发送到适配器?

白板的微信 2019-04-17 14:15:24
我的项目有一个activity命名ResultActivity.java和adapter命名VoyageAdapter.java。有一个string值ResultActivity,我想发送string给VoyageAdapter.java。这该怎么做?ResultActivity.javapublic class ResultActivity extends AppCompatActivity { private String fBus; }我想发送和使用string这一部分VoyageAdapter.javaVoyageAdapter.java public class VoyageAdapter extends RecyclerView.Adapter<VoyageAdapter.ViewHolder> {    @Overridepublic VoyageAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View itemView = LayoutInflater.from(parent.getContext())                .inflate(R.layout.row_voyage_view_bus, parent, false);        return new ViewHolder(itemView);}}MyBaseVoyageFragment.javapublic abstract class MyBaseVoyageFragment extends Fragment {protected String owner; protected View fragmentView; protected String fBus;protected RecyclerView mRecyclerView; protected VoyageAdapter voyageAdapter; protected RecyclerView.LayoutManager mLayoutManager;protected ArrayList<Voyage> voyageList;protected View errorView;public String BROADCAST_TAG = "com.bss.voyage";protected int direction = MyConstants.DIRECTION_GOING;ParseIntentDataAndLoadVoyagesAdapter parseIntentDataAndLoadVoyagesAdapter;protected void init(String owner, int direction) {    mRecyclerView = fragmentView.findViewById(R.id.my_recycler_view);    mLayoutManager = new LinearLayoutManager(getContext());    mRecyclerView.setLayoutManager(mLayoutManager);    this.owner = owner;}void loadVoyagesToAdapter() {    if (voyageAdapter == null) {        voyageAdapter = new VoyageAdapter(getActivity(), voyageList, fBus, mRecyclerView);        fBus="none";        Log.v(fBus, "FRAGMENT BUS");        mRecyclerView.setAdapter(voyageAdapter);    } else {        voyageAdapter.updateList(voyageList); // sonraki güne geçtiğimde yeni bir voyageadapter oluşturmuyorum.    }    if (voyageList.size() < 1 ) {         setErrorView(MyConstants.ERROR_NO_VOYAGE);    }} 
查看完整描述

5 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

试试这个

在你的适配器中创建一个具有字符串值的构造函数。

public class VoyageAdapter extends RecyclerView.Adapter<VoyageAdapter.ViewHolder> {
 private String fBus;

    public VoyageAdapter (Context _context, List<Voyage> _voyageList,RecyclerView recyclerView,String fBus) {
     this.context = _context; 
     this.voyageList = _voyageList;
     this.recyclerView = recyclerView;
     this.fBus= fBus;
  }}


查看完整回答
反对 回复 2019-05-15
?
UYOU

TA贡献1878条经验 获得超4个赞

将字符串值从活动传递给适配器非常简单。创建适配器类参数化构造函数以传递字符串值

像这样:

主要活动

    String myValue="User Name";
    TodayAdapter todayAdapter = new TodayAdapter(MainActivity.this,myValue);myRecyler.setAdapter(todayAdapter);

TodayAdapter.Java

Context context;String dataValue;

    public TodayAdapter(Context context, String dataValue) {
            this.context = context;
            this.dataValue = dataValue;

        }


查看完整回答
反对 回复 2019-05-15
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

你应该添加构造函数

   String test="";
   OrdersAdapter(Context context, ArrayList<OrdersModel> ordersList,String test) {
    this.test=test;
   }

   and create adapter like this:
   ordersAdapter = new OrdersAdapter(this, filterOrdersList,"test");


查看完整回答
反对 回复 2019-05-15
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

您可以在适配器中创建公共方法并调用它来设置String值(与任何其他setter一样)

此外,如果在创建适配器之前确定此String值,则可以通过适配器的构造函数设置它。


查看完整回答
反对 回复 2019-05-15
  • 5 回答
  • 0 关注
  • 667 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号