如何从单击项目打开列表视图?

Posted

技术标签:

【中文标题】如何从单击项目打开列表视图?【英文标题】:How to open List View from On Click Item? 【发布时间】:2013-01-22 03:57:21 【问题描述】:

早安,

感谢这里的一些用户,我能够想出通过单击项目来打开上下文菜单的代码。现在,我希望我的六个项目之一打开一个列表视图。如何实现列表视图?我使用了来自此来源的自定义代码:

http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=146145

http://code.google.com/p/android-carousel-demo/source/browse/#svn%2FCarouselDemo%253Fstate%253Dclosed

我发布了两个链接,以防您更喜欢其中一个。我希望轮播中的一个项目打开一个列表视图。你能帮我解决这个问题吗?这是我目前正在使用的代码。提前谢谢你。

package com.carouseldemo.main;

import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import com.carouseldemo.controls.Carousel;
import com.carouseldemo.controls.CarouselAdapter;
import com.carouseldemo.controls.CarouselAdapter.AdapterContextMenuInfo;
import com.carouseldemo.controls.CarouselAdapter.OnItemClickListener;
import com.carouseldemo.controls.CarouselAdapter.OnItemSelectedListener;
import com.carouseldemo.controls.CarouselItem;

public class MainActivity extends Activity 
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) 
    // Just prepare ourself for unexpected arguments...
    if (menuInfo == null) 
        return;
    
    if (!(menuInfo instanceof AdapterContextMenuInfo)) 
        return;
    
    AdapterContextMenuInfo mi = (AdapterContextMenuInfo)menuInfo;
    switch (mi.position) 
    case 0:
        menu.add("cat menu");
        break;
    case 1:
        menu.add("hippopotamus menu");
        break;
    case 2:
        menu.add("monkey menu");
        break;
    case 3:
        menu.add("mouse menu");
        break;
    case 4:
        menu.add("panda menu");
        break;
    case 5:
        menu.add("rabbit menu");
        break;
    default:
        break;
    
    super.onCreateContextMenu(menu, v, menuInfo);



/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    final Carousel carousel = (Carousel)findViewById(R.id.carousel);
    carousel.setOnItemClickListener(new OnItemClickListener()

                    public void onItemClick(CarouselAdapter<?> parent, View view,
                                    int position, long id) 
                        CarouselItem item = (CarouselItem)parent.getChildAt(position);

                        // HERE: Force context menu
                        carousel.showContextMenuForChild(item);

                            Toast.makeText(MainActivity.this,
                                            String.format("%s has been clicked",
                                            item.getName()),
                                            Toast.LENGTH_SHORT).show();

                    

    );

    carousel.setOnItemSelectedListener(new OnItemSelectedListener()

                    public void onItemSelected(CarouselAdapter<?> parent, View view,
                                    int position, long id) 

                    final TextView txt = (TextView)(findViewById(R.id.selected_item));

                            switch(position)
                            case 0:
                                    txt.setText("The cat (Felis catus), also known as the domestic cat or housecat to distinguish it from other felids and felines, is a small, usually furry, domesticated, carnivorous mammal that is valued by humans for its companionship and for its ability to hunt vermin and household pests. Cats have been associated with humans for at least 9,500 years, and are currently the most popular pet in the world. Owing to their close association with humans, cats are now found almost everywhere in the world.");
                                    break;
                            case 1:
                                    txt.setText("The hippopotamus (Hippopotamus amphibius), or hippo, from the ancient Greek for \"river horse\" (ἱπποπόταμος), is a large, mostly herbivorous mammal in sub-Saharan Africa, and one of only two extant species in the family Hippopotamidae (the other is the Pygmy Hippopotamus.) After the elephant, the hippopotamus is the third largest land mammal and the heaviest extant artiodactyl.");
                                    break;
                            case 2:
                                    txt.setText("A monkey is a primate, either an Old World monkey or a New World monkey. There are about 260 known living species of monkey. Many are arboreal, although there are species that live primarily on the ground, such as baboons. Monkeys are generally considered to be intelligent. Unlike apes, monkeys usually have tails. Tailless monkeys may be called \"apes\", incorrectly according to modern usage; thus the tailless Barbary macaque is called the \"Barbary ape\".");
                                    break;
                            case 3:
                                    txt.setText("A mouse (plural: mice) is a small mammal belonging to the order of rodents. The best known mouse species is the common house mouse (Mus musculus). It is also a popular pet. In some places, certain kinds of field mice are also common. This rodent is eaten by large birds such as hawks and eagles. They are known to invade homes for food and occasionally shelter.");
                                    break;
                            case 4:
                                    txt.setText("The giant panda, or panda (Ailuropoda melanoleuca, literally meaning \"black and white cat-foot\") is a bear native to central-western and south western China.[4] It is easily recognized by its large, distinctive black patches around the eyes, over the ears, and across its round body. Though it belongs to the order Carnivora, the panda's diet is 99% bamboo.");
                                    break;
                            case 5:
                                    txt.setText("Rabbits (or, colloquially, bunnies) are small mammals in the family Leporidae of the order Lagomorpha, found in several parts of the world. There are eight different genera in the family classified as rabbits, including the European rabbit (Oryctolagus cuniculus), cottontail rabbits (genus Sylvilagus; 13 species), and the Amami rabbit (Pentalagus furnessi, an endangered species on Amami Ōshima, Japan)");
                                    break;
                            

                    

                    public void onNothingSelected(CarouselAdapter<?> parent) 
                    

    
    );

    registerForContextMenu(carousel);



【问题讨论】:

问题到底是什么?什么是/不工作?您是否尝试过使用ListView 创建Activity 并在单击项目后调用它? 你的代码有什么问题,你自己实现有什么问题,你试过实现吗? 是的,我不知道如何用我的自定义项来实现它。我是初学者。关于如何执行此任务的任何建议都会很好。 【参考方案1】:

我想它会使用这个代码

@Override  
public void onCreate(Bundle savedInstanceState)   
 super.onCreate(savedInstanceState);  
 setContentView(R.layout.main);  

 listGames = (ListView) findViewById(R.id.listViewGame);  
 gamelistArray = getResources().getStringArray(R.array.gameslist);  
 gameDetailsListArray = getResources().getStringArray(  
 R.array.gamesDetails);  

 adapter = new ArrayAdapter<String>(this,  
  android.R.layout.simple_list_item_1, android.R.id.text1,  
 gamelistArray);  

 listGames.setAdapter(adapter);  

 listGames.setOnItemClickListener(new OnItemClickListener()   

  @Override  
  public void onItemClick(AdapterView<?> parent, View view,  
 int position, long id)   

// Get the item that was clicked  
Object itemName = listGames.getItemAtPosition(position);  
String keyword = itemName.toString();  
String info = gameDetailsListArray[position];  
Toast.makeText(getApplicationContext(),  
"You have selected:  " + keyword, Toast.LENGTH_SHORT)  
  .show();  
Intent i = new Intent(getBaseContext(),  
  ActivityGameDetails.class);  
i.putExtra("info", info);  
i.putExtra("name", keyword);  
startActivity(i);  

  
);  
  

也检查一下这个

ListView in Android (Advance)

ListView:ListView 是一个显示可滚动项目列表的视图组。

ListView in Android (Basic)

【讨论】:

以上是关于如何从单击项目打开列表视图?的主要内容,如果未能解决你的问题,请参考以下文章

OnItemClick 如何从列表视图中获取单击项目的文本值

如何从列表视图按钮单击将多个数据添加到数组列表?

如何从片段内的列表视图打开链接网址?

单击时将所有项目从列表视图转移到文本视图

单击列表视图项时检索的值

多级列表视图从一个项目中打开两个活动。安卓工作室 |爪哇