ユーザーにリストを提示するフラグメントがあるため、クラス内にフラグメントが2つあります.1つはホルダー用、もう1つはアダプター用です。フラグメントからクラスへのリストの受け渡し
public class ListFragment extends Fragment {
List<>mylist;
//some stuff
public class Holder extends RecyclerView.ViewHolder implements View.OnClickListener{
//some Stuff
}
//Another class
public class NoteAdapter extends RecyclerView.Adapter<NoteHolder>{
//I put my list inside the adapter
}
}
私がしようとしているのは、同じリストでウィジェットを作成することです。 これで、ウィジェットのListViewを表示するこのgithubを確認しました:https://github.com/commonsguy/cw-advandroid/tree/master/AppWidget/LoremWidget
今私は自分のフラグメント内のリストをクラス(LoremViewFactory)に渡したいと思います。 クラスのフラグメント内のリストにアクセスできません! クラスLoremViewFactoryからは、ホルダークラスとアダプタークラスにアクセスできますが、作成するクラスにはアクセスできません。 これまでのところ、私が試した:
- をリストにアクセスするための方法でフラグメント内に新しいクラスを作成します(私はまだクラスのアクセスもできません)
- 私がアクセスもできるので、クラスフラグメント内のパブリック変数を作成します。別のクラスから:いいえ、動作しませんでした。
- 既存のクラスの内部に「getlist」メソッドを作成します。メソッドにアクセスできません。
最終的なアイデアは、ウィジェット内でフラグメントが完全に同じであることをアプリに提示することです。 HolderI内側だから、
は、バンドル内のリストを置くことを意図してそれを送信するとGETLIST機能を作成しようとしました: `パブリッククラスNoteAdapterはRecyclerView.Adapter { 公共リストmNotesを拡張。ここで
public NoteAdapter(List<Note> notes) {
mNotes = notes;
}
@Override
public NoteHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
View view = layoutInflater.inflate(R.layout.list_item_note, parent, false);
Intent in = new Intent(getContext(), WidgetProvider.class);//Send data to
in.putExtra("List", (Serializable) mNotes);
Bundle list = new Bundle();
list.putSerializable("List", (Serializable) mNotes);
return new NoteHolder(view);
}
@Override
public void onBindViewHolder(NoteHolder holder, int position) {
Note note = mNotes.get(position);
holder.bindNote(note);
}
public int getItemCount() {
return mNotes.size();
}
public List<Note> getList() {
return mNotes;
}
私がアクセスしたいから、クラス内のコードです:
public class LoremViewsFactory implements RemoteViewsService.RemoteViewsFactory {
//This array was created by the author, want to create my own from the data
private static final String[] items={"lorem", "ipsum", "dolor",
"sit", "amet", "consectetuer",
"adipiscing", "elit", "morbi",
"vel", "ligula", "vitae",
"arcu", "aliquet", "mollis",
"etiam", "vel", "erat",
"placerat", "ante",
"porttitor", "sodales",
"pellentesque", "augue",
"purus"};
private Context ctxt=null;
private int appWidgetId;
List<Note> mylist;
//What I am doing, create a new "fragment class"
NoteListFragment test = new NoteListFragment();
NoteListFragment.NoteAdapter inner = new NoteListFragment().new
NoteAdapter(mylist);
//Here I am trying to access the list with :
inner.getList(); //THIS DOES NOT WORK, I can't acces methods
どのようにクラスからリストにアクセスしようとしていますか?あなたのコードを投稿できますか? –
@ Saeed-rz私はちょうどより多くのコードで質問を編集しました。あなたが問題を理解し、より良いアイデアを持っている場合。 –
同じリストを提示する必要があるので、Loremクラスに送信して、同じリストを提示するウィジェットを持たせることができます。 –