简单列表演示

时间:2013-05-10 07:51:48

标签: android android-listview android-arrayadapter

我在android中做了一个简单的ListDEmo有两个活动。在第一个活动中3个edittexts和2个按钮插入,取消就在那里......并且在第二次活动,有一个ListView和一个“后退”按钮,
现在我想要的是按下"Insert"按钮时......三个EditTexts的值应显示在其他活动的ListView上。我的代码如下:

MainActivity.java

package com.example.listdemo;

import java.util.ArrayList;

import android.R.id;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
Button b1,b2;
EditText e1,e2,e3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final EditText e1=(EditText)findViewById(R.id.editText1);
        final EditText e2=(EditText)findViewById(R.id.editText2);
        final EditText e3=(EditText)findViewById(R.id.editText3);


      //  final ArrayList<String> noteList = new ArrayList<String>();
        //final ArrayAdapter<String> aa;
        b1=(Button)findViewById(R.id.button1);
        b2=(Button)findViewById(R.id.button2);
    b1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            String s1 = e1.getText().toString();
            String s2 = e1.getText().toString();
            String s3 = e1.getText().toString();
            //Intent i =new Intent(MainActivity.this,SecondActivity.class);
             Intent i = new Intent(MainActivity.this,SecondActivity.class);
                i.putExtra("edit1", s1);
                i.putExtra("edit2", s2);
                i.putExtra("edit3", s3);
                startActivity(i);
            startActivity(i);

        }
    });
    b2.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
        Intent i = new Intent(MainActivity.this,SecondActivity.class);
        startActivity(i);
        }
    });
    }



}

SecondActivity.java

    package com.example.listdemo;

import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
import android.sax.StartElementListener;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

public class SecondActivity extends ListActivity {
ListView lv;
Button bt;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

          lv=(ListView)findViewById(R.id.listView1);

            String[] list = new String[3];
            list[0] = getIntent().getStringExtra("edit1");
            list[1] = getIntent().getStringExtra("edit2");
            list[2] = getIntent().getStringExtra("edit3");

            lv.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1,list));


       // Toast.makeText(getApplicationContext(), st1, Toast.LENGTH_LONG).show();

        bt.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
            Intent i =new Intent(SecondActivity.this,MainActivity.class);
            startActivity(i);
            }
        });
    }

}
请帮我解决..!谢谢大家

2 个答案:

答案 0 :(得分:0)

首先,您需要初始化b1&amp; b2,然后在insert按钮的点击监听器中,阅读编辑文本中的值,并使用intent传递它们。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    e1=(EditText)findViewById(R.id.editText1);
    e2=(EditText)findViewById(R.id.editText2);
    e3=(EditText)findViewById(R.id.editText3);

    b1=(Button)findViewById(R.id.button1);
    b2=(Button)findViewById(R.id.button2);

b1.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub

    }
});
b2.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        String s1 =e1.getText().toString();
        String s2 =e2.getText().toString();
        String s3 =e3.getText().toString();
        Intent i = new Intent(MainActivity.this,SecondActivity.class);
        i.putExtra("edit1", s1);
        i.putExtra("edit2", s2);
        i.putExtra("edit3", s3);
        startActivity(i);
    }
});
}

在第二个活动中读取intent的值,并将它们传递给列表适配器..

第二项活动中的back按钮操作,可以简单地finish()

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    lv=(ListView)findViewById(R.id.listView1);

    String[] list = new String[3];
    list[0] = getIntent().getStringExtra("edit1");
    list[1] = getIntent().getStringExtra("edit2");
    list[2] = getIntent().getStringExtra("edit3");

    lv.setListAdapter(new ArrayAdapter<String>(this, R.layout.simplerow,list));

    bt=(Button)findViewById(R.id.button1);
    bt.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            finish();
        }
    });
}

答案 1 :(得分:0)

这真的适合你。拿它

http://android-mantra.blogspot.in/2013/09/how-to-add-list-items-dynamically-using.html

Intent i = new Intent(MainActivity.this,SecondActivity.class);
            i.putExtra("edit1", s1);
            i.putExtra("edit2", s2);
            i.putExtra("edit3", s3);
            startActivity(i);

这在第一项活动中是正确的。

接下来试试 这在你的第二个活动中然后添加到列表中。

Bundle b = getIntent().getExtras();
list[0] = b.getString("edit1");
list[1] = b.getString("edit2");
list[2] = b.getString("edit3");

我得到了你的错误,请在第二个活动中给id按钮。 即

bt=(Button) findViewById(R.Id.button1);

现在运行项目