繁体   English   中英

android在两个不同的活动中初始化两次

[英]android initialize two times in two different activities

无法在另一个活动中两次初始化解析以从两个解析类中调用数据并将它们放入不同的列表视图中。 在第二次按操作项打开联系人活动时,应用程序停止

主要活动

public class MainActivity extends ActionBarActivity {

    private CountryAdapter mAdapter;   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Parse.initialize(this, "0FgKGokshcBPQSpY**********", "f1hZ9W4c***********");

        ParseObject.registerSubclass(Country.class);


        mAdapter = new CountryAdapter(this, new ArrayList<Country>());

        ListView mListView = (ListView) findViewById(R.id.country_list);
        mListView.setAdapter(mAdapter);

        updateData();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();

        if (id == R.id.action_contact) {

            Intent i = new Intent(this, ContactActivity.class);

            startActivity(i);
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    public void updateData() {
        ParseQuery<Country> query = ParseQuery.getQuery(Country.class);

        query.setCachePolicy(ParseQuery.CachePolicy.CACHE_THEN_NETWORK);
        query.findInBackground(new FindCallback<Country>() {
            @Override
            public void done(List<Country> countrys, com.parse.ParseException e) {

                if (countrys != null) {
                    mAdapter.clear();
                    for (int i = 0; i < countrys.size(); i++) {
                        mAdapter.add(countrys.get(i));
                    }
                }
            }
        });   
    }
}

ContactActivity.java

public class ContactActivity extends ActionBarActivity {
    private ContactAdapter mAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_contact);

        Parse.initialize(this, "0FgKGoksh********************", "f1hZ9W4cKO2Ag*******************");

        ParseObject.registerSubclass(Contact.class);


        mAdapter = new ContactAdapter(this, new ArrayList<Contact>());

        ListView mListView = (ListView) findViewById(R.id.contact_list);
        mListView.setAdapter(mAdapter);


        updateData();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.menu_contact, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        return super.onOptionsItemSelected(item);
    }

    public void updateData() {
        ParseQuery<Contact> query = ParseQuery.getQuery(Contact.class);

        query.setCachePolicy(ParseQuery.CachePolicy.CACHE_THEN_NETWORK);
        query.findInBackground(new FindCallback<Contact>() {
            @Override
            public void done(List<Contact> contact, com.parse.ParseException e) {

                if (contact != null) {
                    mAdapter.clear();
                    for (int i = 0; i < contact.size(); i++) {
                        mAdapter.add(contact.get(i));
                    }
                }
            }
        });

    }
}

您应该在扩展此类的Application类的类中初始化解析

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        Parse.initialize(this, "xxxxxxxxxxxx", "xxxxxxxxx");
    }
}

并将应用程序类名放在清单文件中

<application
    android:name=".MyApplication" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM