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

时间:2015-07-27 12:41:51

标签: android

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

主要Activity.java

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

    }
}

1 个答案:

答案 0 :(得分:1)

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

public class MyApplication extends Application {

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

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

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