android中的EditText和ListView实践不起作用
我制作了一个简单的android应用程序,有2个活动。在前3个编辑文本中,有2个按钮“插入”和“取消”在第二个活动中,它是一个列表视图。我想要的是,当按下Activity1的insert按钮时,在第1个活动的EditText中输入的3个值应转到第2个活动,并显示在一个简单的列表视图中…我尝试了以下代码,但它不起作用…Emulator显示“不幸的是,应用程序已停止” mainActivity.javaandroid中的EditText和ListView实践不起作用,android,android-intent,android-listview,android-arrayadapter,Android,Android Intent,Android Listview,Android Arrayadapter,我制作了一个简单的android应用程序,有2个活动。在前3个编辑文本中,有2个按钮“插入”和“取消”在第二个活动中,它是一个列表视图。我想要的是,当按下Activity1的insert按钮时,在第1个活动的EditText中输入的3个值应转到第2个活动,并显示在一个简单的列表视图中…我尝试了以下代码,但它不起作用…Emulator显示“不幸的是,应用程序已停止” mainActivity.java package com.example.listdemo; import java.util.
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();
Bundle b=new Bundle();
b.putStringArray("key", new String[]{s1, s2,s3});
Intent i=new Intent(getApplicationContext(), SecondActivity.class);
i.putExtras(b);
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);
}
});
}
}
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 Activity {
ListView ls;
Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
ls=(ListView)findViewById(R.id.list1);
Bundle b=this.getIntent().getExtras();
String[] array=b.getStringArray("key");
ls.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1,array));
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);
}
});
}
}
seconActivity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/list1"
android:layout_width="match_parent"
android:layout_height="306dp" >
</ListView>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Back"
android:layout_marginTop="20dp"
android:layout_gravity="center" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.listdemo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.listdemo.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.listdemo.SecondActivity"
android:label="@string/title_activity_second" >
</activity>
</application>
</manifest>
manifest.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/list1"
android:layout_width="match_parent"
android:layout_height="306dp" >
</ListView>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Back"
android:layout_marginTop="20dp"
android:layout_gravity="center" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.listdemo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.listdemo.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.listdemo.SecondActivity"
android:label="@string/title_activity_second" >
</activity>
</application>
</manifest>
编辑:
在您的Xml中,将listview的id更改为android:id=“@android:id/list”
,然后在您的类中获得如下内容
lv=(ListView)findViewById(android.R.id.list);
bt=(Button)findViewById(R.id.yourButtonid);
使用ListActivity时会发生这种情况,因为ListActivity应该具有id为android.R.id.list的listview,请检查此处以供参考
您的按钮
button bt
为null
,因为您尚未在onCreate()中获取其引用
试着像这样扣上你的钮扣
lv=(ListView)findViewById(android.R.id.list);
bt=(Button)findViewById(R.id.yourButtonid);
我想这是您的问题,请发布logcat跟踪,以便我根据它发布答案您的第二个活动是extends ListActivity,因此您不需要设置ContentView,并且ListView可以作为引用来使用getListView()
您尚未指定按钮id。您刚刚声明了按钮bt。您必须获得second.xml中指定的按钮引用
在错误中,它显示nullpointer异常位于第33行。
这是您为按钮单击编写代码的地方。
编辑您的代码并参考按钮bt,如下所示
按钮bt=(按钮)findViewById(R.id.Button id)
在第一个活动中,也可以这样编辑
String s1 = e1.getText().toString();
String s2 = e2.getText().toString();
String s3 = e3.getText().toString();
我用按钮引用尝试了你的代码。它工作正常。请发布你的日志跟踪我已经放置了日志跟踪…sirI已经按照你的建议制作了一些图标…但仍然不工作。。。!sri.请帮帮我…这是我对工作的实际测试。。!它可以救我的lyf@jigar把你的logcat跟踪贴在这里…这样我可以帮你。。编辑您的问题并在日志中标出红线window@jigar不,请检查我的答案…一次。。我在其中提供了Edit@jigar您是否已将listview的id属性设置为android:id=“@android:id/list”
在activity\u second.xml
@jigar您是否已在AndroidManifest.xml
中注册了SecondActivity
?getListView()
也将不起作用,因为xml中的listview应该有idandroid=“@android:id/list”
兄弟..我已经删除了“listactivity”并放置了“activity”仍然不起作用…:(你能在这里放置新的logacat吗?@jigar将listview的android:id更改为@+id/listView1,与你试图获取的id相同(listview)findViewById(R.id.listView1);是的……先生……我已经编辑了……但问题仍然存在……请帮助我,先生……这是我的练习xam for job,……它可以救我……:(@jigar:只需在bt.setOnClickListener(new OnClickListener()之前添加按钮bt=(按钮)findViewById(R.id.button1){。这会很好的。我已经在我的答案中发布了。检查一下,在发布答案之前询问一下他