首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListView Toast消息

ListView Toast消息
EN

Stack Overflow用户
提问于 2016-04-18 12:31:51
回答 2查看 587关注 0票数 1

我这里有这个代码。当我的列表视图中的某一行被单击时,我正在尝试显示一条toast消息,但没有显示任何内容。这是我的代码。

代码语言:javascript
复制
   public class MainActivity extends AppCompatActivity {

        ListView list;
        String[] movieTitles;
        int[] images = {R.drawable.batman_vs_superman, R.drawable.captain_america, R.drawable.deadpool,
                R.drawable.jungle_book, R.drawable.xmen,R.drawable.zootopia, R.drawable.hail,R.drawable.allegent,
                R.drawable.jason, R.drawable.lane};

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

            Resources res= getResources();
            movieTitles = res.getStringArray(R.array.titles);

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

            MoviesAdapter adapter = new MoviesAdapter(this,movieTitles, images);

            list.setAdapter(adapter);

            list.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Toast.makeText(getApplicationContext(), "You selected "+ movieTitles[position], Toast.LENGTH_SHORT).show();

                }
            });

        }
    }

编辑我有两个xml文件,代码如下:

"content_main.xml“

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.emmancipatemusemwa.task2.MainActivity"
    tools:showIn="@layout/activity_main">

    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/listView"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:clickable="true" />
</RelativeLayout>

这里我有一个单行设计的single_row.xml。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <ImageView
        android:src="@drawable/captain_america"
        android:paddingTop="10dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:id="@+id/imageView"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Large Text"
        android:id="@+id/textView"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/imageView"
        android:layout_toEndOf="@+id/imageView" />

    <RatingBar
        android:layout_width="245dp"
        android:layout_height="wrap_content"
        android:id="@+id/ratingBar"
        android:layout_below="@+id/textView"
        android:layout_toRightOf="@+id/imageView" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="more info"
        android:id="@+id/textView2"
        android:layout_below="@+id/ratingBar"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:textStyle="italic" />
</RelativeLayout>
EN

回答 2

Stack Overflow用户

发布于 2016-04-18 12:57:18

试试这个!

代码语言:javascript
复制
list.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(getApplicationContext(), "You selected "+ position, Toast.LENGTH_SHORT).show();

    }
});
票数 0
EN

Stack Overflow用户

发布于 2016-04-18 12:59:54

在MAINACTIVITY中这样做

代码语言:javascript
复制
// Import 

import android.widget.AdapterView;

.........
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(getApplicationContext(), "You selected "+ movieTitles[position], Toast.LENGTH_SHORT).show();
            }
        });


    OR IN UR CUSTOM ADAPTER LISTVIEW ALTER/ADD THIS


 @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        Holder holder=new Holder();
        View rowView;       
             rowView = inflater.inflate(R.layout.program_list, null);
.....................
...................
...................
rowView.setOnClickListener(new OnClickListener() {            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(context, "You selected "+result[position], Toast.LENGTH_LONG).show();
            }
        });   
        return rowView;
        }

注意:不要有两个setOnClickListener,只使用了一个,根据你的问题,我认为你使用了两个setOnClickListener函数,所以Toast不起作用。

您只能在MainActivity或您的自定义类(MovieAdapter)中使用一个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36685526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档