私は、tablayoutに2つのフラグメントを持っています。これは、解析データベースのユーザーに応じて入力する必要があります。フラグメント内の解析オブジェクトを自分のリストに渡すにはどうすればいいですか?
しかし、私はリストを取るために、問題に直面しています、それはMainActivityのコードを、次のとおりです。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Parse.initialize(this);
ParseInstallation.getCurrentInstallation().saveInBackground();
setContentView(R.layout.activity_main);
.......
ParseQuery<ParseObject> query = ParseQuery.getQuery("Items");
// this will find the user.
// then find the first instance
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, com.parse.ParseException e) {
List<Items> 1List = new ArrayList<Items>();
List<Items> 2List = new ArrayList<Items>();
if (objects == null) {
Log.d("nothing found", "let's go ahead and create a new object.");
//ADD THE OBJECT AS A NEW OBJECT!!!!
} else {
for(i=0;objects.size() > 0;i++) {
ParseObject parseObject = objects.get(i);
if(parseObject.getString("iduser").equals(ID_1)){
1List.add(objects.get(i));//ERROR HOW TO FIX?
/*THIS ERROR add
(com.dev.bob.recife3.persistence.Items)
in List cannot be applied
to
(com.parse.ParseObject)*/
}else{
2List.add(objects.get(i));//ERROR HOW TO FIX?
/*THIS ERROR add
(com.dev.bob.recife3.persistence.Items)
in List cannot be applied
to
(com.parse.ParseObject)*/
}
if (getFragmentRefreshListener1() != null) {
getFragmentRefreshListener1().onRefresh(new ItemsAdapter(getContext(), 1List));
}
if (getFragmentRefreshListener2() != null) {
getFragmentRefreshListener2().onRefresh(new ItemsAdapter(getContext(), 2List));
}
String test = parseObject.getString("name").toString();//JUST A TEST
Log.d("points found", "" + "");
}
}
}
});
}
........
public class SectionPagerAdapter extends FragmentPagerAdapter {
public SectionPagerAdapter(FragmentM2ger fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new 2TabFragment();
case 1:
return new 1TabFragment();
default:
return new 2TabFragment();
}
}
@Override
public int getCount() {
return 2;
}//retorna as duas abas estaticamente
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return getString(R.string.2);
case 1:
return getString(R.string.1);
default:
return getString(R.string.2);
}
}
}
private Context getContext(){
return this;
}
public FragmentRefreshListener getFragmentRefreshListener1() {
return fragmentRefreshListener1;
}
public void setFragmentRefreshListener1(FragmentRefreshListener fragmentRefreshListener1) {
this.fragmentRefreshListener1 = fragmentRefreshListener1;
}
private FragmentRefreshListener fragmentRefreshListener1;
public interface FragmentRefreshListener{
void onRefresh(ItemsAdapter itemsAdapter);
}
public FragmentRefreshListener2 getFragmentRefreshListener2() {
return fragmentRefreshListener2;
}
public void setFragmentRefreshListener2(FragmentRefreshListener2 fragmentRefreshListener2) {
this.fragmentRefreshListener2 = fragmentRefreshListener2;
}
private FragmentRefreshListener2 fragmentRefreshListener2;
public interface FragmentRefreshListener2{
void onRefresh(ItemsAdapter itemsAdapter);
}
}
は、どのように私は、フラグメントにパースから到着したリストを得るのですか? このデータはどのように渡され、このリストは正しいフラグメントに表示されますか?エラーはコード内でコメントアウトされています。これは次のとおりです。
1List.add(objects.get(i)); (com.dev.bob.recife3.persistence.Items)一覧 が に適用することができない(com.parse.ParseObject)
は、データベースの画像に従う:
![enter image description here](https://i.stack.imgur.com/1MXzK.png)
あなたのリストは、アイテムのリストであり、あなたがのインスタンスに入れしようとしているので、それはおそらくですParseObject。 –
parseobjectを受け取るようにアダプタを変更しました –