2012-01-23 5 views
0

私が作っているタスクリスト/マネージャーアプリに問題があります。 ViewTasksActivityにEditTextがあり、AddTaskActivityに移動するボタンがあります。ViewTasksActivityアクティビティEditTextにテキストを入力すると、AddTaskActivityに表示されるように設定しています。これは良いですが、それはメモリに保存されていますので、ViewTasksActivity EditTextに新しいテキストを入力すると、前に書かれたものの最後に実際に追加され、AddTaskActivityに移ります!混乱する!私はそれを説明する言葉を見つけることができません!ここで私のedittextから1アクティビティから別のアクティビティへテキストを持ち帰り、空であればクリアする

iがViewTasksActivityがTaskManagerActivity {

private EditText taskNameEditText; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    taskNameEditText = (EditText) findViewById (R.id.EditText_taskName); 
} 

// Buttons Start 
public void Button_chooseTaskList_Clicked(View view) { 

} 
public void Button_createNewTask_Clicked(View view) { 
    String taskName = taskNameEditText.getText().toString(); 
    Task t = new Task(taskName); 
    getTaskManagerApplication().addTask(t); 
    Intent intent = new Intent(this, AddTaskActivity.class); 
    startActivity(intent); 
} 
// Buttons End 

}

main.xmlがaddtaskactivityである

<TableLayout 
    android:id="@+id/Table_tableTop" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/Divider_1" 
    android:paddingTop="5dip" 
    android:paddingLeft="4dip" 
    android:stretchColumns="2" > 

    <TableRow> 
     <Button 
      android:id="@+id/Button_chooseTaskList" 
      android:background="@drawable/iv_newtask" 
      android:layout_column="1" 
      android:onClick="Button_chooseTaskList_Clicked" 
      /> 
     <EditText 
      android:id="@+id/EditText_taskName" 
      android:hint="@string/edittext_hint_text_name" 
      android:layout_column="2" 
      android:textSize="13dip" 
      /> 
     <Button 
      android:id="@+id/Button_createNewTask" 
      android:background="@drawable/button_addnewtask" 
      android:layout_column="3" 
      android:onClick="Button_createNewTask_Clicked" 
      /> 
    </TableRow> 

</TableLayout> 

で延びてこれまで...

パブリッククラスを有するコードであります

私が言ったように
public class AddTaskActivity extends TaskManagerActivity { 

private EditText taskNameEditText; 
private DateFormat fmtDate = DateFormat.getDateInstance(DateFormat.LONG); 
private DateFormat fmtTime = DateFormat.getTimeInstance(DateFormat.SHORT); 
private TextView showDate; 
private TextView showTime; 
private TextView showEndDate; 
private TextView showEndTime; 
private Calendar myCalendar = Calendar.getInstance(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.add_task); 

    taskNameEditText = (EditText) findViewById (R.id.EditText_taskName); 
    showDate = (TextView) findViewById(R.id.showDate); 
    showTime = (TextView) findViewById(R.id.showTime); 
    showEndDate = (TextView) findViewById(R.id.showEndDate); 
    showEndTime = (TextView) findViewById(R.id.showEndTime); 

    setupListSpinner(); 
} 


@Override 
protected void onResume() { 
    super.onResume(); 
    showTaskName(); 
} 

private void showTaskName() { 
    ArrayList<Task> tasks = getTaskManagerApplication().getCurrentTasks(); 
    StringBuffer sb = new StringBuffer(); 
    for (Task t:tasks) { 
     sb.append(String.format("%s", t.toString())); 
    } 
    taskNameEditText.setText(sb.toString()); 
} 

add_task.xmlが

<TableLayout 
     android:id="@+id/Table_taskName" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/Divider_1" 
     android:paddingTop="5dip" 
     android:paddingLeft="4dip" 
     android:paddingRight="4dip" 
     android:stretchColumns="2" > 

     <TableRow> 
      <EditText 
       android:id="@+id/EditText_taskName" 
       android:hint="@string/edittext_hint_text_name" 
       android:layout_column="2" 
       android:textSize="13dip" 
       /> 
     </TableRow> 

    </TableLayout> 

あり、それが情報を保持しているが、アプリを閉じている場合でも、それはまだメモリに保持します。 お願いします!

おかげ クリス

答えて

0

こんにちは友人)別の

バンドルバンドル=新しいバンドル(1つのアクティビティからあなたのエディットテキストの値を転送するためにこのコードを使用します。 bundle.putString( "S2"、edittext.getText()。toString());

インテントi =新しいインテント(PageCommunicationActivity.this、NextActivity.class);

i.putExtras(bundle);

startActivity(i);

「S2」は、キー値と、コード

バンドルのバンドル= getIntent()の下に使用して次のアクティビティの値をretrive getExtras()。

s2 = bundle.getString( "S2");

+0

ありがとう、私はそれをやったやり方よりもはるかに簡単に、非常に感謝! – stoff

関連する問題