0

Я хочу, чтобы кнопка в Activity2 отображала текст, который был введен в EditText в activity1. Это мое первое приложение, использующее более одного действия, поэтому я могу просто пытаться ошибиться. Я попытался установить текст кнопки в прямое значение EditText, сохранив его, но это не сработало правильно. Любое направление было бы высоко оценено!android - Использовать текст из EditText в activity1 на кнопке в activity2

activity1

start_day вызывается, когда кнопка в activity1 нажата. Он отправляет приложение в действие2.

public class AddTasksActivity extends AppCompatActivity { 

    public final static String taskOne = "Task One Content"; 

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

    public void start_day(View view){ 
     Intent intent = new Intent(this, DayTasksActivity.class); 
     intent.putExtra("taskOne", taskOne); 
     startActivity(intent); 
    } 
} 

деятельности2

В настоящее время кнопка показывает текст из activity1 "Task One Content". Поэтому я делаю что-то прямо, проходя мимо, но я не могу ничего сделать, кроме работы, и я еще не нашел ничего подобного.

public class DayTasksActivity extends AppCompatActivity { 

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

     Bundle bundle = getIntent().getExtras(); 
     String taskOne = bundle.getString("taskOne"); 

     Button buttonTaskOne = (Button) findViewById(R.id.button_task_one); 
     buttonTaskOne.setText(taskOne); 
    } 
} 
+1

, что ваш вопрос? – rahul

+0

@rahul Как установить кнопку в значение, заданное в тексте редактирования. Сейчас это не так. Он просто использует String taskOne. – RaineShadow

ответ

0
  1. Сначала дайте идентификатор для ваших взглядов в файлах макет
  2. Затем инстанцируют свои взгляды в соответствующем классе активности
  3. Затем получить он текст из редактирования текста и сохранить его в корешке и передать его
  4. получить значение из пучка во второй активности
  5. установить значение в кнопке

Activity1

public class AddTasksActivity extends AppCompatActivity { 

private EditText myEditText; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_add_tasks); 
    myEditText = (EditText) findViewById(R.id.put_your_id_here_form_layout_file); 
} 

public void start_day(View view){ 
    Intent intent = new Intent(this, DayTasksActivity.class); 
    intent.putExtra("taskOne", myEditText.getText().toString()); 
    startActivity(intent); 
} 
} 

деятельности2

public class AddTasksActivity extends AppCompatActivity { 

private Button buttonTaskOne; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_day_tasks); 
    buttonTaskOne = (Button) findViewById(R.id.button_task_one); 
    Bundle bundle = getIntent().getExtras(); 
    String taskOne = bundle.getString("taskOne"); 
    if (taskOne != null){ 
     buttonTaskOne.setText(taskOne); 
    } 
} 
} 
+0

Это сработало отлично! Спасибо за шаги наверху. Они определенно помогли объяснить, что я делаю, а не просто копировать и вставлять. – RaineShadow

0

Это лучшее, что вы используете Android Studio. Потому что студия Android заботится о файле манифеста для вас. и в затмении вы должны сделать манифестную часть себя (определение новой активности в манифесте). @rahul сделал хороший ответ, но я думаю, что если это просто строка, лучше использовать putExtra и getExtra mehods, а не использовать пакет. здесь немного другой код: первая активность MainActivity:

public class MainActivity extends AppCompatActivity { 

public Button btn; 
public String str; 

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

    final EditText et = (EditText) findViewById(R.id.et); 

    Button btn = (Button) findViewById(R.id.button1); 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      if(!et.getText().toString().equals("")) 

      str = et.getText().toString(); 

      Intent i = new Intent(MainActivity.this, Main2Activity.class); 
      i.putExtra("key", str); 
      startActivity(i); 
     } 
    }); 

} 

}

второй Деятельность Main2Activity:

public class Main2Activity extends AppCompatActivity { 

String str; 

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

    final Button btn = (Button) findViewById(R.id.button2); 

    str = Main2Activity.this.getIntent().getExtras().getString("key"); 
    btn.setText("" + str); 
} 
} 
+0

Это также использует комплект, его только встроенный код lol – rahul

+0

да, я знаю, что он использует комплект. но он меньше кода и реализован Google. – Shahryar

+0

hmmmmmmmmmmmm, ну меньше кода и меньше числа строк - две разные вещи. иногда меньшее количество строк не означает меньше кода. И всегда есть компромисс b/w меньше строки/кода и надежности. мы можем применить нулевую проверку также в комплекте, чтобы быть уверенным и надежным. его всегда хорошо делиться и учиться. – rahul

Смежные вопросы