как последовательно выполнить действие 1, 2, 3, когда вы уже находитесь на мероприятии 3 - PullRequest
0 голосов
/ 30 мая 2018

Я новичок в программировании Android, я создал приложение, в котором есть 5 кнопок, и для каждой кнопки я использовал явное намерение для действия с изображением.например, если кнопка 1 нажата, то она показывает активность image1, если кнопка 2 нажата, она показывает активность image2, аналогично для всех кнопок.

Теперь моя проблема здесь, я хочу изменить эту существующую логику, чтобы нажать кнопку5(это последняя кнопка в моем приложении), и она должна показывать image1acctivity, image2 активность, image3 активность, image4 активность, image4 активность в последовательности image5 последовательно с некоторой задержкой, например, если я нажал кнопку2, то на ней должно отображаться image1 активность + (задержка) +image2 активность, если я нажал кнопку3, тогда она должна показывать image1activity + (задержка) + image2 активность + (задержка) + активность image3 и так далее. Как это сделать, может кто-нибудь предложить?

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Да, создание такого большого количества действий просто для отображения изображения - не очень хорошая идея.Вы можете создать только одно действие и передать изображение в соответствии с нажатием кнопки.А при нажатии на кнопку 5 вы можете использовать нить, которая может устанавливать изображение один за другим через некоторый интервал времени.У меня есть демо, которое устанавливает текст по нажатию кнопки один за другим .. Вы можете сделать что-то подобное enter image description here

Вот код

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    TextView tv;
    Button btn;
    int i = 1;

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

        getSupportActionBar().hide();

        tv = findViewById(R.id.textView);
        btn = findViewById(R.id.button);

        btn.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {

        MyThread myThread = new MyThread();
        myThread.start();
    }

    class MyThread extends Thread {
        @Override
        public void run()
        {

            for (i = 0; i < 5; i++)
            {
                try
                {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

                runOnUiThread(new Runnable(){
                    @Override
                    public void run()
                    {
                        switch (i)
                        {
                            case 1:
                                tv.setText("One");
                                break;

                            case 2:
                                tv.setText("Two");
                                break;

                            case 3:
                                tv.setText("Three");
                                break;

                            case 4:
                                tv.setText("Four");
                                break;

                            case 5:
                                tv.setText("Five");
                                break;

                            case 6:
                                tv.setText("Six");
                                break;

                            case 7:
                                tv.setText("seven");
                                break;
                        }
                    }
                });
            }


        }
    }
}
0 голосов
/ 30 мая 2018

Передавайте дополнительно с намерением к действиям и на основе их запишите условие в этих действиях.

Сделайте так:

Создайте намерение:

Intent i = new Intent(this, ActivityTwo.class);

//Create the bundle
Bundle bundle = new Bundle();

//Add your data to bundle
bundle.putString(“stuff”, "your flag/text here");

//Add the bundle to the intent
i.putExtras(bundle);

//Fire that second activity
startActivity(i);

Теперь во втором упражнении получите данные из пакета:

//Get the bundle
Bundle bundle = getIntent().getExtras();

//Extract the data…
String stuff = bundle.getString(“stuff”);
//based on the value of stuff control your activity
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...