我正在设计的应用程序基于一个菜单,其项目是由用户输入 EditText 然后通过单击按钮提交文本来创建的。我还希望能够根据用户单击他们创建的菜单项来进行新活动。到目前为止,这是我的 Java 代码:
package com.example.doodlestudy;
import java.io.FileOutputStream;
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
public class MainActivity extends Activity {
private OnClickListener AddToString;
Button Badd;
EditText ETadd;
ListView LVmain;
String filename = "Main_Activity";
String input;
FileOutputStream outputStream;
ArrayAdapter<String> m_adapter;
ArrayList<String> m_listItems = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Badd = (Button)findViewById(R.id.Badd);
ETadd = (EditText)findViewById(R.id.ETadd);
LVmain = (ListView)findViewById(R.id.LVmain);
m_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, m_listItems);
LVmain.setAdapter(m_adapter);
Badd.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
input = ETadd.getText().toString();
m_listItems.add(new String(input));
m_adapter.notifyDataSetChanged();
}
});
try {
outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
outputStream.write(input.getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
这是我的xml代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/ETadd"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Click to Edit..." >
<requestFocus />
</EditText>
<Button
android:id="@+id/Badd"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="Add" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ListView
android:id="@+id/LVmain"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
这是我的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.doodlestudy"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.doodlestudy.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>
</application>
我还没有触摸我的清单,因为我无法让我的代码允许转换到一个新的活动。我想我可能需要一种不同的方式来存储用户在 EditText 中创建的字符串,但我并不肯定。