как получить позицию адаптера массива в другой деятельности - PullRequest
0 голосов
/ 14 мая 2018

Так что это родительское действие и оно имеет вид списка, который изменяется в соответствии с выбранным фильтром.

Теперь я хочу, чтобы при щелчке любого элемента в представлении списка он открывал новое действиеи я успешно запрограммировал эту вещь.

Теперь, что должно произойти, так это то, что независимо от того, создается ли новое действие, должно быть нажато название элемента, но я не хочу создавать разный макет для каждого элемента.Короче говоря, я хочу что-то динамическое

public class Catalogue extends AppCompatActivity implements AdapterView.OnItemSelectedListener {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_catalogue);
        Spinner spinner = (Spinner) findViewById(R.id.spinner);
        // Create an ArrayAdapter using the string array and a default spinner layout
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.filter_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(this);
        ImageView BackFromCatalogue = (ImageView) findViewById(R.id.BackFromCatalogue);
        BackFromCatalogue.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });

    }


    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        switch (position) {
            case 0:

                ArrayList<Food> new_food = new ArrayList<Food>();
                new_food.add(new Food("Pizza", "probably attracts evryone", R.drawable.test));
                new_food.add(new Food("noddles", "probably attracts evryone", R.drawable.test));
                new_food.add(new Food("pasta", "probably attracts evryone", R.drawable.test));
                new_food.add(new Food("burger", "probably attracts evryone", R.drawable.test));
                new_food.add(new Food("coke", "probably attracts evryone", R.drawable.test));
                FoodAdapter food_adapter = new FoodAdapter(this, new_food);
                ListView listView = (ListView) findViewById(R.id.food_list);
                listView.setAdapter(food_adapter);
                listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        switch (position) {
                            case 0:
                                Intent i = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i);
                                break;
                            case 1:
                                Intent i1 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i1);
                                break;
                            case 2:
                                Intent i2 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i2);
                                break;
                            case 3:
                                Intent i3 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i3);
                                break;
                            case 4:
                                Intent i4 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i4);
                                break;
                        }
                    }
                });
                break;

            case 1:

                ArrayList<Food> new_food1 = new ArrayList<Food>();

                new_food1.add(new Food("coke", "probably attracts evryone", R.drawable.test));
                new_food1.add(new Food("coke", "probably attracts evryone", R.drawable.test));
                new_food1.add(new Food("coke", "probably attracts evryone", R.drawable.test));
                new_food1.add(new Food("coke", "probably attracts evryone", R.drawable.test));
                new_food1.add(new Food("coke", "probably attracts evryone", R.drawable.test));
                FoodAdapter food_adapter1 = new FoodAdapter(this, new_food1);
                ListView listView1 = (ListView) findViewById(R.id.food_list);
                listView1.setAdapter(food_adapter1);
                listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        switch (position) {
                            case 0:
                                Intent i = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i);
                                break;
                            case 1:
                                Intent i1 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i1);
                                break;
                            case 2:
                                Intent i2 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i2);
                                break;
                            case 3:
                                Intent i3 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i3);
                                break;
                            case 4:
                                Intent i4 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i4);
                                break;
                        }
                    }
                });
                break;

            case 2:

                ArrayList<Food> new_food2 = new ArrayList<Food>();

                new_food2.add(new Food("burger", "probably attracts evryone", R.drawable.test));
                new_food2.add(new Food("burger", "probably attracts evryone", R.drawable.test));
                new_food2.add(new Food("burger", "probably attracts evryone", R.drawable.test));
                new_food2.add(new Food("burger", "probably attracts evryone", R.drawable.test));
                new_food2.add(new Food("burger", "probably attracts evryone", R.drawable.test));
                FoodAdapter food_adapter2 = new FoodAdapter(this, new_food2);
                ListView listView2 = (ListView) findViewById(R.id.food_list);
                listView2.setAdapter(food_adapter2);
                listView2.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        switch (position) {
                            case 0:
                                Intent i = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i);
                                break;
                            case 1:
                                Intent i1 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i1);
                                break;
                            case 2:
                                Intent i2 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i2);
                                break;
                            case 3:
                                Intent i3 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i3);
                                break;
                            case 4:
                                Intent i4 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i4);
                                break;
                        }
                    }
                });
                break;

            case 3:

                ArrayList<Food> new_food3 = new ArrayList<Food>();

                new_food3.add(new Food("pasta", "probably attracts evryone", R.drawable.test));
                new_food3.add(new Food("pasta", "probably attracts evryone", R.drawable.test));
                new_food3.add(new Food("pasta", "probably attracts evryone", R.drawable.test));
                new_food3.add(new Food("pasta", "probably attracts evryone", R.drawable.test));
                new_food3.add(new Food("pasta", "probably attracts evryone", R.drawable.test));
                FoodAdapter food_adapter3 = new FoodAdapter(this, new_food3);
                ListView listView3 = (ListView) findViewById(R.id.food_list);
                listView3.setAdapter(food_adapter3);
                listView3.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        switch (position) {
                            case 0:
                                Intent i = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i);
                                break;
                            case 1:
                                Intent i1 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i1);
                                break;
                            case 2:
                                Intent i2 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i2);
                                break;
                            case 3:
                                Intent i3 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i3);
                                break;
                            case 4:
                                Intent i4 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i4);
                                break;
                        }
                    }
                });
                break;


            case 4:

                ArrayList<Food> new_food4 = new ArrayList<Food>();

                new_food4.add(new Food("noddles", "probably attracts evryone", R.drawable.test));
                new_food4.add(new Food("noddles", "probably attracts evryone", R.drawable.test));
                new_food4.add(new Food("noddles", "probably attracts evryone", R.drawable.test));
                new_food4.add(new Food("noddles", "probably attracts evryone", R.drawable.test));
                new_food4.add(new Food("noddles", "probably attracts evryone", R.drawable.test));
                FoodAdapter food_adapter4 = new FoodAdapter(this, new_food4);
                ListView listView4 = (ListView) findViewById(R.id.food_list);
                listView4.setAdapter(food_adapter4);
                listView4.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        switch (position) {
                            case 0:
                                Intent i = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i);
                                break;
                            case 1:
                                Intent i1 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i1);
                                break;
                            case 2:
                                Intent i2 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i2);
                                break;
                            case 3:
                                Intent i3 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i3);
                                break;
                            case 4:
                                Intent i4 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i4);
                                break;
                        }
                    }
                });
                break;

            default:

                ArrayList<Food> new_food5 = new ArrayList<Food>();

                new_food5.add(new Food("Pizza", "probably attracts evryone", R.drawable.test));
                new_food5.add(new Food("Pizza", "probably attracts evryone", R.drawable.test));
                new_food5.add(new Food("Pizza", "probably attracts evryone", R.drawable.test));
                new_food5.add(new Food("Pizza", "probably attracts evryone", R.drawable.test));
                new_food5.add(new Food("Pizza", "probably attracts evryone", R.drawable.test));
                FoodAdapter food_adapter5 = new FoodAdapter(this, new_food5);
                ListView listView5 = (ListView) findViewById(R.id.food_list);
                listView5.setAdapter(food_adapter5);
                listView5.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        switch (position) {
                            case 0:
                                Intent i = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i);
                                break;
                            case 1:
                                Intent i1 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i1);
                                break;
                            case 2:
                                Intent i2 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i2);
                                break;
                            case 3:
                                Intent i3 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i3);
                                break;
                            case 4:
                                Intent i4 = new Intent(Catalogue.this, FoodItem.class);
                                startActivity(i4);
                                break;
                        }
                    }
                });
                break;

        }
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {

    }

}

Это нижнее действие, которое должно открываться при щелчке по элементу в списке с заголовком по нажатию элемента

package com.anonymous.jit.caterers;

import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

public class FoodItem extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_food_item);
        ImageView BackFromCatalogue = (ImageView) findViewById(R.id.BackFromFoodItem);
        BackFromCatalogue.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
        TextView FITextview = (TextView) findViewById(R.id.app_title);
        FITextview.setText(positionfinder());

    }

    public String positionfinder(){

        return string;
    }
}

Ответы [ 2 ]

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

В перспективе вашего случая 0:

Измените все это:

Intent i = new Intent(Catalogue.this, FoodItem.class);
startActivity(i);
break;

Как

Intent i = new Intent(Catalogue.this, FoodItem.class);
i.putExtra("foodName",new_food.get(position).yourFoodNameGetter());
startActivity(i);
break;

И измените свой

    public String positionfinder(){

        return string;
    }

Как и

public String positionfinder(){

        return getIntent().getStringExtra("foodName");
    }

Здесь yourFoodNameGetter() - это получатель, который вы имеете для foodName в вашем классе Model.

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

превращает интерфейс в класс адаптера питания, как показано ниже.

    onItemClickListner onItemClickListner;

public void setOnItemClickListner(CommentsAdapter.onItemClickListner onItemClickListner) {
    this.onItemClickListner = onItemClickListner;
}

public interface onItemClickListner {
    void onClick(int position);//pass your object types.
}

В методе getView укажите код клика для события ниже.

outerContiner.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onItemClickListner.onClick(position);
        }
    });

после привязки адаптера к списку представленных ниже кодов ..

        adapter.setOnItemClickListner(new CommentsAdapter.onItemClickListner() {
        @Override
        public void onClick(int position) {
        Log.d("Postition::",""+position);
        adapter.notifyDataSetChanged();
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...