-1

在Android中如何使用.get[position]and namein .putextra,以及如何使用数组?positionputextra

ainListView = (ListView) findViewById( R.id.mainListView );
mainListView.setOnItemClickListener(new OnItemClickListener() {
    int[] myImageList = new int[]{R.drawable.koala_copy, R.drawable.lighthouse_copy};

    public void onItemClick(AdapterView<?> parent, View view, int pos,
                            long id) {
        Intent b = new Intent(SimpleListViewActivity.this, Nextclass.class);
        b.putExtra("Name", myImageList.get[position]);
        b.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        finish();
        startActivity(b);
    }

    private ArrayAdapter<String> getListAdapter() {
        // TODO Auto-generated method stub
        return null; 
    }


});
4

1 回答 1

0

目前还不清楚你的意思。以及您的代码。首先,您想表达什么意图?看起来您正试图在数组中获得一个位置。.get 不是有效的数组方法。一个数组列表是的,但不是数组。即便如此,您也不会只放置一个空白变量。

我怀疑您希望将所选列表视图的位置放入一个意图中,然后启动下一个活动。

b.putExtra("Name", pos);

不管你信不信,这就是你所需要的,因为 int pos(位置)很方便地作为 onclicklistener 的一个参数出现。也许在下一个活动中,您想在图像视图中显示两个图像中的一个。在那里你可以使用一个简单的 if 语句,或者如果你打算放更多的话,可以使用 case 来选择要显示的图像。到目前为止,我看不到那个 int 数组在哪里。


编辑: 在下一个活动中显示图像的实现没有魔法。就像直觉一样,您会得到刚刚放入意图的 int 。然后根据数字是多少,您对新的可绘制对象执行 imageview 可绘制分配。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        int listPos = getIntent().getExtras().getInt("Name");
        ImageView image = (ImageView) findViewById(R.id.imageView1);

        switch (listPos) {
        case 0: image.setImageResource(R.drawable.koala_copy);
        break;
        case 1: image.setImageResource(R.drawable.lighthouse_copy);
        break;
        }
    }

至于从 sd 卡获取图像,也许这个网页会有所帮助: http ://android-er.blogspot.com/2010/07/load-bitmap-file-from-sd-card.html

它也有一个示例文件,您也可以下载。

最后,为了不只是给你一天的鱼,但帮助你钓鱼 - 我可以推荐一些视频教程吗?这是除了 stackoverflow 之外的一个很好的资源,用于获取有关 android 开发的知识:http ://thenewboston.org/list.php?cat=6

于 2012-10-09T15:09:05.030 回答