コードで膨らませたい単純な編集テキスト xml ファイルがあります。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="right" >
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:imeOptions="normal"
android:inputType="text" >
</EditText>
</LinearLayout>
</LinearLayout>
// これは私の xml ファイルです
Javaファイルでは、ユーザーが入力した値に基づいて編集テキストを追加したくないので、以下に私のJavaプログラムパッケージcom.example.attendancecalculator;を示します。
import com.example.attendancecalculator.R.id;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
public class TablePageOne extends Activity implements OnClickListener {
LayoutInflater li;
Button b,c;
int i;
EditText et1,et2;
protected void onCreate(Bundle savedInstanceState, int j) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tablepg1);
et1 = (EditText)findViewById(R.id.editText1);
li=this.getLayoutInflater();
loadPrefs();
b=(Button)findViewById(R.id.button12);
b.setOnClickListener(this);
for(int j1=0;j1<i;j1++)
add(j1);
}
void add(int i)
{
LinearLayout ll=(LinearLayout)findViewById(R.id.edit);
EditText et=(EditText)li.inflate(R.layout.edittext, null);
et2= (EditText)et.findViewById(id.editText2);
loadPrefs(et2,"sub"+String.valueOf(i));
final int j=i;
et1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
savePrefs("sub"+String.valueOf(j),arg0.toString());
}
});
ll.addView(et);
ll.requestLayout();
}
private void loadPrefs(){
SharedPreferences sp=PreferenceManager.getDefaultSharedPreferences(this);
int v=sp.getInt("i", 1);
et1.setText(String.valueOf(v));
}
private void loadPrefs(EditText e,String key){
SharedPreferences sp=PreferenceManager.getDefaultSharedPreferences(this);
e.setText(sp.getString(key, ""));
}
private void savePrefs(String key,String value){
SharedPreferences sp=PreferenceManager.getDefaultSharedPreferences(this);
Editor edit=sp.edit();
edit.putString(key, value);
edit.commit();
}
private void savePrefs(String key,int value){
SharedPreferences sp=PreferenceManager.getDefaultSharedPreferences(this);
Editor edit=sp.edit();
edit.putInt(key, value);
edit.commit();
}
public void onClick(View v) {
String getvalue1=et1.getText().toString();
i=Integer.parseInt(getvalue1);
savePrefs("i",i);
}
}
/* これは私の Java プログラムです。 が膨張しない理由がわかりません。私を助けてください。*/