我是Android的新手,我尝试使用两个布局开发一个简单的应用程序,第一个包含Button和ListView。按下按钮,我将使用明确的意图进入第二个布局。第二个布局包含一个Button和一个EditText。在EditText字段内传递一个字符串并按下按钮我将在第一个布局中使用显式意图传输字符串,然后我必须将它添加到ArrayList中并通过数组适配器传递给ListView。
我的问题是如何修复此应用程序,以便它不会粉碎,以及是否有任何其他方式来执行流程。
这是我的第一个活动:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import java.util.ArrayList;
public class ListView extends Activity {
ArrayList<String> list;
ArrayAdapter<String> aa;
Button button;
android.widget.ListView view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view);
//Getting the message from the FormView.class
Intent intent = getIntent();
String message = intent.getStringExtra(FormView.EXTRA_MESSAGE);
//Getting the button's id
button = (Button) findViewById(R.id.second_button);
//Passing the message to the ArrayList
list = new ArrayList<String>();
list.add(message);
//Passing the ArrayList in the ListView through the ArrayAdapter
view = (android.widget.ListView) findViewById(R.id.list_view);
aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
view.setAdapter(aa);
}
private void addItem(String item) {
if (item.length() > 0) {
this.list.add(item);
this.aa.notifyDataSetChanged();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.list_view, menu);
return true;
}
public void formAppearance(View view) {
Intent intent = new Intent(this, FormView.class);
startActivity(intent);
}
}
这是我的第二个活动:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import static com.freeshaman.shoppinglists.R.id.text_view;
public class FormView extends Activity {
public static final String EXTRA_MESSAGE = "com.freeshaman.ShoppingLists.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_form_view);
// getting the intent from the first button
getIntent();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.form_view, menu);
return true;
}
public void sendListName(View view) {
Intent intent = new Intent(this, ListView.class);
EditText listName = (EditText) findViewById(text_view);
String message = listName.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
}
任何帮助将不胜感激。