繁体   English   中英

如何从ArrayList <>获取位置

[英]How can I get Position from 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之类的静态位置。 但是我不明白。

在Item类中再添加一个String字段页面:

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"));

单击时,从Item获取相应的页面值:

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);
      }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM