有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从ArrayList获取位置

/**
 * Created by myozawoo on 11/21/14.
 */
public class GridActivity extends Activity {

    GridView gridView;
    ArrayList<Item> gridArray = new ArrayList<Item>();
    CustomGridViewAdapter customGridAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);

        setContentView(R.layout.activity_grid);

        //set grid view item
        final Bitmap one = BitmapFactory.decodeResource(this.getResources(), R.drawable.one);
        Bitmap two = BitmapFactory.decodeResource(this.getResources(), R.drawable.two);
        Bitmap three = BitmapFactory.decodeResource(this.getResources(), R.drawable.three);
        Bitmap four = BitmapFactory.decodeResource(this.getResources(), R.drawable.four);
        Bitmap five = BitmapFactory.decodeResource(this.getResources(), R.drawable.five);
        Bitmap six = BitmapFactory.decodeResource(this.getResources(), R.drawable.six);

        gridArray.add(new Item(one,"Text One"));
        gridArray.add(new Item(two,"Text Two"));
        gridArray.add(new Item(three,"Text Three"));
        gridArray.add(new Item(four,"Text Four"));
        gridArray.add(new Item(five,"Text Five"));
        gridArray.add(new Item(six,"Text Six"));

//我想要这个数组中的位置

        gridView = (GridView) findViewById(R.id.gridView);
        customGridAdapter = new CustomGridViewAdapter(this, R.layout.custom_cell, gridArray);
        gridView.setAdapter(customGridAdapter);

      gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                Intent intent = new Intent(getBaseContext(), MainActivity.class);
                intent.putExtra("page", gridArray.get(position).toString());                
                startActivity(intent);

                Toast.makeText(getApplicationContext(), gridArray.get(position).toString(),
                        Toast.LENGTH_SHORT).show();



            }

        });

    }
}

我想要静态的位置,比如1,2。但我不明白


共 (1) 个答案

  1. # 1 楼答案

    在Item类中再添加一个字符串字段页:

    public class Item {
        private String text;
        private Bitmap image;
        private String page;
    
    
        public Item(Bitmap image,String text,String page){
            this.image = image;
            this.text = text;
            this.page = page;
        }
    
        public Bitmap getImage() {
            return image;
        }
    
    
        public String getText() {
            return text;
        }
    
    
        public String getPage() {
            return page;
        }
    }
    

    在构造函数中添加页值:

     gridArray.add(new Item(one,"Text One","one"));
    

    单击时从项目获取相应的页面值:

    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
         @Override
         public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            Toast.makeText(getApplicationContext(),gridArray.get(position).getPage(),Toast.LENGTH_SHORT).show();
            Intent intent = new Intent(getBaseContext(), MainActivity.class);
            intent.putExtra("page", gridArray.get(position).getPage());                
            startActivity(intent);
          }
    });