Android 从其他活动启动具有ListView的活动时出现问题
**我有一个奇怪的问题(对我来说),当我启动一个活动时,这个活动有一个来自另一个活动的listview,它不工作,但是当我发送一个字符串来填充它启动的listview时!! 这是我将从中启动另一个活动的活动 (问题在第二个意图中,将转到show.class) 这是我需要发起的活动Android 从其他活动启动具有ListView的活动时出现问题,android,Android,**我有一个奇怪的问题(对我来说),当我启动一个活动时,这个活动有一个来自另一个活动的listview,它不工作,但是当我发送一个字符串来填充它启动的listview时!! 这是我将从中启动另一个活动的活动 (问题在第二个意图中,将转到show.class) 这是我需要发起的活动 package com.hema.colornotes; import android.content.Context; import android.content.Intent; import android.su
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 activity会获取要显示的所需数据。所以它工作得很好 您的第二个活动被设置为从intent获取“消息”,因此当您不放置任何字符串时,您的第二个活动的第一个intent将崩溃。建议以大写字母开头类名。。但是它不会影响你的功能所以我应该删除所有类并用大写字母重命名它们吗?抱歉,我没有在代码中得到我应该修改的内容?你必须在包中传递“message”值!只有这样,“显示活动”才会运行。如果您没有传递值,那么它将导致崩溃。我在bundle中传递了它,但是当我单击mainactivity中的按钮bt2时,它还没有显示第三个活动!
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();
}
}
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);
}
});
}
}