Как я могу дождаться окончания задачи до 1000 *, прежде чем начинать другую? - PullRequest
0 голосов
/ 24 марта 2020

Я преобразовал содержимое Textview texx; в строку, где я могу отобразить его в виде массива, однако он отображает содержимое textView до того, как задача doit () была выполнена, текущий вывод на экране - «TextView», я хочу, чтобы он отображал вывод TextView texx ; после того, как он закончил свою задачу. Любая помощь будет высоко ценится.

Я очень плохо знаком с android studio и java.


    public class AppHome extends AppCompatActivity implements PopupMenu.OnMenuItemClickListener {
        TextView texx;
        private ArrayList<String> al;
        private ArrayAdapter<String> arrayAdapter;
        private int i;

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

            new doit().execute();

            texx= findViewById(R.id.text1);
            String text = texx.getText().toString();

            //String num = text;
            String[] str = text.split(",");
            final ArrayList al = new ArrayList<String>(Arrays.asList(str));

    (Full code below)

    ```
    public class AppHome extends AppCompatActivity implements PopupMenu.OnMenuItemClickListener {
        TextView texx;
        private ArrayList<String> al;
        private ArrayAdapter<String> arrayAdapter;
        private int i;

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

            new doit().execute();

            texx= findViewById(R.id.text1);
            String text = texx.getText().toString();

            //String num = text;
            String[] str = text.split(",");
            final ArrayList al = new ArrayList<String>(Arrays.asList(str));

            arrayAdapter = new ArrayAdapter<>(this, R.layout.item, R.id.helloText, al );

            SwipeFlingAdapterView flingContainer = findViewById(R.id.frame);


            registerForContextMenu(flingContainer);


            flingContainer.setAdapter(arrayAdapter);

            flingContainer.setFlingListener(new SwipeFlingAdapterView.onFlingListener() {
                @Override
                public void removeFirstObjectInAdapter() {
                    // this is the simplest way to delete an object from the Adapter (/AdapterView)
                    Log.d("LIST", "removed object!");
                    al.remove(0);
                    arrayAdapter.notifyDataSetChanged();
                }

                @Override
                public void onLeftCardExit(Object dataObject) {
                    //Do something on the left!
                    //You also have access to the original object.
                    //If you want to use it just cast it (String) dataObject
                    Toast.makeText(AppHome.this, "left", Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onRightCardExit(Object dataObject) {
                    Toast.makeText(AppHome.this, "right", Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onAdapterAboutToEmpty(int itemsInAdapter) {
                    // Ask for more data here
                    al.add("XML ".concat(String.valueOf(i)));
                    arrayAdapter.notifyDataSetChanged();
                    Log.d("LIST", "notified");
                    i++;
                }

                @Override
                public void onScroll(float scrollProgressPercent) {
                }
            });

            // Optionally add an OnItemClickListener
            /*
            flingContainer.setOnItemClickListener(new SwipeFlingAdapterView.OnItemClickListener() {
                @Override
                public void onItemClicked(int itemPosition, Object dataObject) {

                }
            });

             */

        }
        public class doit extends AsyncTask<Void, Void, String> {
            @Override
            protected String doInBackground(Void... voids) {
                String words = "";
                try {
                    Document doc = Jsoup.connect("https://screenscrape4top40.000webhostapp.com/").get();
                    words = doc.text();
                } catch(Exception e) {
                    e.printStackTrace();
                }
                return words;
            }

            @Override
            public void onPostExecute(String words) {
                super.onPostExecute(words);
                texx.setText(words);
            }
        }


    public void showPopup(View v) {
        PopupMenu popup = new PopupMenu(this, v);
        popup.setOnMenuItemClickListener(this);
        popup.inflate(R.menu.dropdown_menu1);
        popup.show();
    }

        @Override
        public boolean onMenuItemClick(MenuItem item) {
            switch (item.getItemId()) {
                case R.id.item1:
                    Toast.makeText(this, "Item 1 clicked", Toast.LENGTH_SHORT).show();
                    return true;
                    case R.id.item2:
                        Toast.makeText(this, "Item 2 clicked", Toast.LENGTH_SHORT).show();
                        return true;
                        case R.id.item3:
                            Toast.makeText(this, "Item 3 clicked", Toast.LENGTH_SHORT).show();
                            return true;
                            case R.id.item4:
                                Toast.makeText(this, "Item 4 clicked", Toast.LENGTH_SHORT).show();
                                return true;
                            default:
                                return false;
                        }
                    }
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...