猿问

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

我的项目有一个activity命名ResultActivity.java和adapter命名VoyageAdapter.java。有一个string值ResultActivity,我想发送string给VoyageAdapter.java。这该怎么做?


ResultActivity.java


public class ResultActivity extends AppCompatActivity {

 private String fBus;


 }

我想发送和使用string这一部分VoyageAdapter.java


VoyageAdapter.java


 public class VoyageAdapter extends RecyclerView.Adapter<VoyageAdapter.ViewHolder> {

    @Override

public 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.java


public 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);

    }

}



 

白板的微信
浏览 668回答 5
5回答

小怪兽爱吃肉

试试这个在你的适配器中创建一个具有字符串值的构造函数。public&nbsp;class&nbsp;VoyageAdapter&nbsp;extends&nbsp;RecyclerView.Adapter<VoyageAdapter.ViewHolder>&nbsp;{ &nbsp;private&nbsp;String&nbsp;fBus; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;VoyageAdapter&nbsp;(Context&nbsp;_context,&nbsp;List<Voyage>&nbsp;_voyageList,RecyclerView&nbsp;recyclerView,String&nbsp;fBus)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.context&nbsp;=&nbsp;_context;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.voyageList&nbsp;=&nbsp;_voyageList; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.recyclerView&nbsp;=&nbsp;recyclerView; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.fBus=&nbsp;fBus; &nbsp;&nbsp;}}

UYOU

将字符串值从活动传递给适配器非常简单。创建适配器类参数化构造函数以传递字符串值像这样:主要活动&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;myValue="User&nbsp;Name"; &nbsp;&nbsp;&nbsp;&nbsp;TodayAdapter&nbsp;todayAdapter&nbsp;=&nbsp;new&nbsp;TodayAdapter(MainActivity.this,myValue);myRecyler.setAdapter(todayAdapter);TodayAdapter.JavaContext&nbsp;context;String&nbsp;dataValue; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;TodayAdapter(Context&nbsp;context,&nbsp;String&nbsp;dataValue)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.context&nbsp;=&nbsp;context; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.dataValue&nbsp;=&nbsp;dataValue; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

翻翻过去那场雪

你应该添加构造函数&nbsp;&nbsp;&nbsp;String&nbsp;test=""; &nbsp;&nbsp;&nbsp;OrdersAdapter(Context&nbsp;context,&nbsp;ArrayList<OrdersModel>&nbsp;ordersList,String&nbsp;test)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;this.test=test; &nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;and&nbsp;create&nbsp;adapter&nbsp;like&nbsp;this: &nbsp;&nbsp;&nbsp;ordersAdapter&nbsp;=&nbsp;new&nbsp;OrdersAdapter(this,&nbsp;filterOrdersList,"test");

繁花不似锦

您可以在适配器中创建公共方法并调用它来设置String值(与任何其他setter一样)此外,如果在创建适配器之前确定此String值,则可以通过适配器的构造函数设置它。
随时随地看视频慕课网APP

相关分类

Java
我要回答