[英]trouble with launching an activity with ListView from another activity
**我有一个奇怪的问题(对我而言),当我启动一个活动,并且该活动具有另一个活动的列表视图时,它不起作用,但是当我发送字符串以填充列表视图时,它启动! 这是我将要启动另一个活动的活动(问题出在第二个意图上,它将显示到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();
}
}
这是一项效果很好的活动,并启动了表演活动,因为我发送了一个字符串
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);
}
});
}
}
提前致谢 !**
当您不发送捆绑包以显示活动时,它将以空指针异常使应用程序崩溃。 这就是为什么,它没有用。 发送捆绑包时,show activity将显示所需的数据。 所以工作正常!
您的第二个活动被设置为从意图中获取“消息”,因此当您不输入任何字符串时,您的第二个活动将崩溃。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.