简体   繁体   English

单击列表视图中的项目时如何启动活动?

[英]How to start an activity when an item from the listview is clicked?

I have list items or an array of items in strings.xml . 我在strings.xml有列表项或项数组。 I want to start an Activity when an item is clicked but my array list is defined in strings.xml . 单击某个项目但我的数组列表在strings.xml定义时,我想启动一个Activity Please Help. 请帮忙。 Let's say item number One Opens ActivityItem1 and so on... 假设商品编号One打开ActivityItem1 ,依此类推...

This is my XML file: 这是我的XML文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <AutoCompleteTextView
        android:layout_width="match_parent"
        android:layout_height="65dp"
        android:hint="@string/search"
        android:id="@+id/txtsearch"/>

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/listView">

    </ListView>

</LinearLayout>

And This My Strings.xml 这是我的Strings.xml

<resources>

<array name="allduas">
        <item>Item Number 1</item>
        <item>Item Number 2</item>
        <item>Item Number 3</item>
        <item>Item Number 4</item>
        <item>Item Number 5</item>
        <item>Item Number 6</item>
        <item>Item Number 7</item>
        <item>Item Number 8</item>
        <item>Item Number 9</item>
        <item>Item Number 10</item>
        <item>Item Number 10</item>
        <item>Item Number 12</item>
        <item>Item Number 13</item>
        <item>Item Number 14</item>
        <item>Item Number 15</item>
        <item>Item Number 16</item>
        <item>Item Number 17</item>
        <item>Item Number 18</item>
        <item>Item Number 19</item>
        <item>Item Number 20</item>
        <item>Item Number 21</item>
        <item>Item Number 22</item>
        <item>Item Number 23</item>
        <item>Item Number 24</item>
        <item>Item Number 25</item>
        <item>Item Number 26</item>
        <item>Item Number 27</item>
        <item>Item Number 28</item>
        <item>Item Number 29</item>
        <item>Item Number 30</item>

    </array>

</resources>

And this is my java file 这是我的java文件

public class AllDuasActivity extends Activity {

    public ListView listView;
    public String[] items;
    public ArrayAdapter<String> adapter;
    public AutoCompleteTextView ac;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.allduas);

        ac = (AutoCompleteTextView)findViewById(R.id.txtsearch);
        items = getResources().getStringArray(R.array.allduas);
        listView = (ListView) findViewById(R.id.listView);
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
                             android.R.layout.simple_list_item_1, items);
        listView.setAdapter(adapter);
        ac.setAdapter(adapter);
    }


}
    lv.setOnItemClickListener(new OnItemClickListener()
    {
        @Override 
        public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)
        { 
            if(position==1)
            startActivity(this,Activity1.class);
        }
    });

try this . 尝试这个 。

It is really easy to do with a ListView component. 使用ListView组件确实很容易。 Just add OnItemClickListener as following: 只需添加OnItemClickListener ,如下所示:

  listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = new Intent(context, DetailsActviity.class);
                intent.putExtra("position", position)
                context.startActivity(intent)
            }
        });
Class<?> cls = Class.forName(className);

Get String className from your xml file for example, but it should be full link such as com.myapp.MyClass. 例如,从您的xml文件中获取String className,但是它应该是完整链接,例如com.myapp.MyClass。 Then start Activity with this class name. 然后使用该类名称启动Activity。

public void onItemClickListener() {
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = null;
            switch (position) {
                case POSITION_ONE:
                    intent = new Intent(context, ActivityOne.class);
                    break;
                case POSITION_TWO:
                    intent = new Intent(context, ActivityTwo.class);
                    break;
                case POSITION_THREE:
                    intent = new Intent(context, ActivityThree.class);
                    break;
            }
            context.startActivity(intent)
            }
        }
    });
}

You can have as many switch cases as you have activities. 您可以拥有与活动一样多的开关盒。

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

相关问题 如何从ListView启动新布局(活动) - How to start New Layout (activity) from ListView 在Cordova中单击HTML中的Button时,启动New Activity - Start New Activity when Button is clicked in HTML in Cordova 为每个微调项添加ListView ..,并在单击时弹出 - add ListView for every spinner Item..and pops down when clicked 从列表中单击项目时预览图像 - Preview image when item is clicked from a list 在React Native(和Ignite)中,如何创建一个ListView(在选项卡中),当单击列表项时,该View导航到另一个容器? - In React Native (and Ignite), how do I create a ListView (inside a tab) that navigates to another container when a list item is clicked? 单击时如何在导航栏项目下划线? - How to underline navbar item when it is clicked? 如何突出显示 JS fetch() 中点击的项目 - How to highlight the clicked item from JS fetch() 单击列表时如何使用列表中项目的信息来渲染模态 - How do I render a modal with information from an item in the list when clicked on it ExtJs 4、如何防止 xtype: 'combo' 在点击已选项目时崩溃? - ExtJs 4, How to prevent xtype: 'combo' from collapsing when already selected item clicked? 当使用jQuery单击项目时,如何从外部json文件获取ID数据并在url中显示ID号 - How to an id data from external json file and show id number in url , when item is clicked with jQuery
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM