-1
votes

Comment envoyer la valeur de chaîne de l'activité à l'adaptateur?

Mon projet a une activité code> nommée résultantactivity.java code> et un adaptateur code> nommé VoyageAdapter.java code>. Il y a une chaîne String code> dans résultantes code>, et je souhaite envoyer ce chaîne code> à VOYAGEADAPTER.JAVA code>. Comment faire cela?

résultatactivité.java p> xxx pré>

Je veux envoyer et utiliser string code> dans cette partie de VoyageAdapter.java Code> P>

VOYAGEADAPTER.JAVA P>

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

private class ParseIntentDataAndLoadVoyagesAdapter extends AsyncTask<String, Void, String> {
    Intent intent;
    public ParseIntentDataAndLoadVoyagesAdapter(Intent intent) {
        this.intent = intent;
    }

    @Override
    protected String doInBackground(String... params) {
        if (isCancelled()) return "";
        try {
            JSONArray jsonArray = new JSONArray(intent.getStringExtra("data"));
            voyageList = new ArrayList<>();
            for (int i = 0; i < jsonArray.length(); i++) {
          voyageList.add(Voyage.setJsonToClass(jsonArray.getJSONObject(i), direction, owner));
            }
        } catch (JSONException e) {
            Log.e("getIntent", e.toString());
            e.printStackTrace();
        }
        return "";
    }
}


0 commentaires

5 Réponses :


0
votes

essayez ceci

dans votre adaptateur, faites un constructeur avec une valeur de chaîne. xxx


4 commentaires

J'ai déjà ce code: Public Voyageadapter (contexte _Context, liste _VOYAGELIST, RECYCLERVIEW RECYCLERVIEW) {Ceci.context = _Context; cela.voyagelist = _voyageliste; this.recyClerview = recyclerview; devrais-je entrer à l'intérieur ou puis-je faire d'autres et l'utiliser?


@Skullylaykutzz ajoutez alors un argument de chaîne supplémentaire à ce constructeur et c'est fait.


J'ai fait comme ça. Mais il vient null maintenant dans this.fbus .


Le problème que j'ai une autre classe qui est basefragment pour cet adaptateur. Il vient null à cette classe. Alors, puis j'obtiens null dans la classe d'adaptateur.



0
votes

Vous pouvez créer une méthode publique dans votre adaptateur et l'appeler pour définir la valeur de chaîne (comme n'importe quel autre setter)

De plus, si cette valeur de chaîne est déterminée avant de créer un adaptateur, vous pouvez le définir via le constructeur de l'adaptateur.


0 commentaires

0
votes

Vous avez deux options simples, créez d'abord un enregistreur pour cette chaîne dans l'adaptateur et appelez ce réglage de votre activité ou mettez cette valeur dans votre constructeur qui dépend de votre valeur de chaîne est déterminée avant de créer un adaptateur ou après que


0 commentaires

0
votes

Vous devez ajouter au constructeur xxx


0 commentaires

0
votes

C'est un très simple à transmettre une valeur de chaîne de l'activité à l'adaptateur. Créez une classe d'adaptateur Constructeur paramétré pour passer la valeur de la chaîne

comme ceci: strong> p>

MainAlactivité strong> p>

Context context;
String dataValue;

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

        }


0 commentaires