Как я могу вызвать другое действие из одной (текущей) активности?
И для этого я хочу вызвать операцию, которая содержит окно диалогового окна из моей текущей активности.
Как я могу вызвать другое действие из одной (текущей) активности?
И для этого я хочу вызвать операцию, которая содержит окно диалогового окна из моей текущей активности.
Первый вопрос:
Используйте намерение для вызова другого действия. В манифесте вы должны добавить
<activity android:name="ListViewImage"></activity>
<activity android:name="com.company.listview.ListViewImage">
</activity>
И в вашей текущей деятельности
btListe = (ImageButton)findViewById(R.id.Button_Liste);
btListe.setOnClickListener(new OnClickListener()
{ public void onClick(View v)
{
intent = new Intent(main.this, ListViewImage.class);
startActivity(intent);
finish();
}
});
Второй вопрос:
sendButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String valueString = editValue.getText().toString();
long value;
if (valueString != null) {
value = Long.parseLong(valueString);
}
else {
value = 0;
}
Bundle sendBundle = new Bundle();
sendBundle.putLong("value", value);
Intent i = new Intent(Activity1.this, Activity2.class);
i.putExtras(sendBundle);
startActivity(i);
finish();
}
});
и в Activity2:
Bundle receiveBundle = this.getIntent().getExtras();
final long receiveValue = receiveBundle.getLong("value");
receiveValueEdit.setText(String.valueOf(receiveValue));
callReceiverButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(Activity2.this, Receiver.class);
i.putExtra("new value", receiveValue - 10);
}
});
проверьте следующий код, чтобы вызвать одно действие из другого.
Intent intent = new Intent(CurrentActivity.this, OtherActivity.class);
CurrentActivity.this.startActivity(intent);
Я использовал следующий код в своем примере приложения для запуска новой активности.
Button next = (Button) findViewById(R.id.TEST);
next.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = new Intent( view.getContext(), MyActivity.class);
startActivityForResult(myIntent, 0);
}
});
Поскольку мы не знаем, какие имена ваших классов деятельности, позвольте называть текущую активность Activity1 и тот, который вы хотите открыть, - Activity2 (это имена классов)
Сначала вам нужно определить намерение, которое будет отправлено на Activity2:
Intent launchActivity2 = new Intent(Activity1.this, Activity2.class);
Затем вы можете просто запустить действие, выполнив:
startActivity (launchActivity2);
Добавьте следующее к событию нажатия кнопки:
Intent intent = new Intent(First.this, Second.class);
startActivity(intent);
finish();
Эта задача может быть выполнена с использованием одного из основных строительных блоков андроида, называемого Intents, и одного из методов public void startActivity (Intent intent)
, принадлежащего вашему классу Activity.
Цель - абстрактное описание выполняемой операции. Он может использоваться с startActivity для запуска Activity, broadcastIntent для отправки его любым заинтересованным компонентам BroadcastReceiver и startService (Intent) или bindService (Intent, ServiceConnection, int) для связи с фоновым сервисом.
Anent обеспечивает средство для выполнения поздней привязки во времени между кодом в разных приложениях. Его наиболее значимое использование - это начало деятельности, где ее можно рассматривать как клей между действиями. Это в основном пассивная структура данных, содержащая абстрактное описание действия, которое необходимо выполнить.
Обратитесь к официальным документам - http://developer.android.com/reference/android/content/Intent.html
public void startActivity (Intent intent)
- Используется для запуска нового действия.
Итак, предположим, что у вас есть два класса Activity и на кнопке нажмите OnClickListener()
, вы хотите перейти от одного действия к другому, а затем -
PresentActivity. Это ваша текущая деятельность, из которой вы хотите перейти во вторую активность.
NextActivity. Это ваше следующее действие, на которое вы хотите переместить (оно может содержать все, что вы говорите в диалоговом окне).
Итак, намерение будет таким:
Intent(PresentActivity.this, NextActivity.class)
Наконец, это будет полный код
public class PresentActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.content_layout_id);
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
Intent activityChangeIntent = new Intent(PresentActivity.this, NextActivity.class);
// currentContext.startActivity(activityChangeIntent);
PresentActivity.this.startActivity(activityChangeIntent);
}
});
}
}
Этот пример связан с нажатием кнопки, вы можете использовать код в любом месте, который написан внутри кнопки, нажмите OnClickListener()
в любом месте, где вы хотите переключиться между вашими действиями.
Поместите это внутри метода onCreate() MainActivity1.java
Button btnEins = (Button) findViewById(R.id.save);
btnEins.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent intencion = new Intent(v.getContext(),MainActivity2.class );
startActivity(intencion);
}
});
Я реализовал этот способ, и он работает. Это намного проще, чем все, что сообщается.
У нас есть два вида деятельности: один - основной, а второй - вторичный.
Во вторичной активности, где мы хотим завершить основное действие, определите следующую переменную:
public static Activity ACTIVIDAD;
И затем следующий метод:
public static void enlaceActividadPrincipal(Activity actividad)
{
tuActividad.ACTIVIDAD=actividad;
}
Затем в вашем основном действии с помощью метода onCreate
вы вызываете вызов:
actividadSecundaria.enlaceActividadPrincipal(this);
Теперь вы контролируете ситуацию. Теперь, из вашей вторичной деятельности, вы можете завершить основное мероприятие. Закончите вызов функции, например:
ACTIVIDAD.finish();
Следующий код демонстрирует, как вы можете начать другое действие с помощью намерения.
Запустите действие с намерением, связанным с указанным классом
Intent i = new Intent(this, ActivityTwo.class);
startActivity(i);
Действия, которые запускаются другими действиями Android, называются суб-мероприятиями. Эта формулировка облегчает описание того, что означает деятельность.
проверьте следующий код, чтобы открыть новую функцию.
Intent f = new Intent (MainActivity.this, SecondActivity.class);
startActivity (е);
Самый простой способ назвать одно действие другим
startActivity( new Intent( getApplicationContext(), YourActivity.class ) );