从另一个活动启动ListView活动的麻烦

时间:2015-07-31 10:42:31

标签: android

**我有一个奇怪的问题(对我来说)当我发起一个活动时,这个活动有一个来自另一个活动的列表视图它不起作用但是当我发送一个字符串来填充列表视图时它会启动!! 这是我将发起另一项活动的活动 (问题出在show.class的第二个意图中)

package com.hema.colornotes;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;


public class MainActivity extends ActionBarActivity {

    Button b1,b2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b1 = (Button) findViewById(R.id.btAdd);
        b2 = (Button) findViewById(R.id.btShow);
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent i =new Intent(MainActivity.this,add.class);
                startActivity(i);
            }
        });

        b2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent i = new Intent(MainActivity.this, show.class);
                startActivity(i);
            }
        });
    }




}

这是我需要启动的活动

package com.hema.colornotes;
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.List;


public class show extends ActionBarActivity {
    Context context;
    List<String> tasks;
    ArrayAdapter<String> adapter;




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

        context = this;
        tasks = new ArrayList<String>();


        // second parameter is row layout,
        adapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1,tasks);
        ListView listView = (ListView) findViewById(R.id.listView);
        listView.setAdapter(adapter);
        Intent intent = getIntent();
        String value = intent.getExtras().getString("message");

        tasks.add(value);

        // this method will refresh your listview manually
        adapter.notifyDataSetChanged();


    }


}

这就是效果很好的活动并启动了show活动,因为我发送了一个字符串

package com.hema.colornotes;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;


public class add extends ActionBarActivity {
    EditText note;

    Button b1,b2;

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

        b1=(Button)findViewById(R.id.btSave);
        b2=(Button)findViewById(R.id.btCancel);


        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                note = (EditText) findViewById(R.id.etNote);
                String notes = note.getText().toString();
                Intent i = new Intent(add.this, show.class);
                i.putExtra("message", notes);
                startActivity(i);
            }
        });
        b2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(add.this, MainActivity.class);
                startActivity(i);

            }
        });


    }


}

提前致谢!**

2 个答案:

答案 0 :(得分:0)

当你不发送捆绑包来显示活动时,它会以空指针异常崩溃应用程序。这就是原因,它不起作用。 发送包时,show activity将显示所需的数据。所以它工作正常!

答案 1 :(得分:0)

您的第二项活动将设置为&#34; message&#34;从意图开始,所以当你没有放任何字符串时,你的第二个活动就会崩溃。