Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 获取已单击的listview项的名称_Android_Listview - Fatal编程技术网

Android 获取已单击的listview项的名称

Android 获取已单击的listview项的名称,android,listview,Android,Listview,我已经从json解析了(id、名称、图像)listview:我将在单击图像时获得名称,我将获得名称,但有时并不总是得到错误的名称 listView = (ListView) findViewById(R.id.list); feedItems = new ArrayList<FeedItem>(); listAdapter = new FeedListAdapter(this, feedItems); listView.setAdapter(lis

我已经从json解析了(id、名称、图像)listview:我将在单击图像时获得名称,我将获得名称,但有时并不总是得到错误的名称

    listView = (ListView) findViewById(R.id.list);

    feedItems = new ArrayList<FeedItem>();

    listAdapter = new FeedListAdapter(this, feedItems);
    listView.setAdapter(listAdapter);
    listView.setOnScrollListener(this);
到目前为止,我所掌握的代码

   public void clicked(View view) {

    TextView name = (TextView) findViewById(R.id.name);
    Intent i = new Intent(MainActivity.this, GalleryUrlActivity.class);
    String message = name.getText().toString();
    i.putExtra("message", message);
    startActivity(i);

我将请求您的帮助…

此代码将在listview的项目上设置单击侦听器。它将使用与适配器相同的阵列

listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l)
        {
           FeedItem myItem = feedItems.get(i);
           Intent intent = new Intent(MainActivity.this, GalleryUrlActivity.class);
           String message = myItem.getName(); //change this according to your feeditem
           intent.putExtra("message", message);
           startActivity(intent );
        }
    });
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener()
{
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l)
{
FeedItem myItem=feedItems.get(i);
意向意向=新意向(MainActivity.this、GalleryUrlActivity.class);
String message=myItem.getName();//根据您的feeditem更改此设置
intent.putExtra(“消息”,消息);
星触觉(意向);
}
});

您可以在单击图像时设置onclicklistner,然后在单击图像时获取名称。您可以在adapater类getView()中设置以下代码


请显示您的适配器代码,这是因为您的适配器未正确编码。如果使用空数组填充listview,它有多少项?我已经更新了,可以单击列表上的图像并获取名称吗?listview有多少项?因为我看不到您填充的
feedItems
array超过20项,如果你不改变我的代码,并且所有的feedItem都有不同的名称,那么我将继续学习这个教程。这个
position
从哪里来?它是adpter getView方法中的位置,即public View getView(int position,View convertView,ViewGroup parent)这仅在单击图像而不是整行项目时起作用。如果您将feedImageView更改为convertView,您将获得更好的结果。@PedroOliveira是的。但是在问题中Riz提到->“我会在点击图像时得到名字”,所以我给出了这个解决方案。
listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l)
        {
           FeedItem myItem = feedItems.get(i);
           Intent intent = new Intent(MainActivity.this, GalleryUrlActivity.class);
           String message = myItem.getName(); //change this according to your feeditem
           intent.putExtra("message", message);
           startActivity(intent );
        }
    });
  final int pos=position;
    feedImageView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
          Log.v("name :: ", feedItems.get(pos). getName());

          Intent i = new Intent(context, GalleryUrlActivity.class);
          String message = feedItems.get(pos). getName();
          i.putExtra("message", message);
          context.startActivity(i);
        }
    });