简体   繁体   English

如何为使用Android中的GridView显示的每个imageView添加不同的Toast消息

[英]How to add different toast messages for each imageView which displayed using GridView in android

activity_main activity_main

<GridView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/gridview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="8"
        tools:ignore="MissingConstraints" />

ImageAdapter.java ImageAdapter.java

  package com.example.android.whattheemoticon;

    import android.content.Context;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.GridView;
    import android.widget.ImageView;

    public class ImageAdapter extends BaseAdapter {
        private Context mContext;

        public ImageAdapter(Context c) {
            mContext = c;
        }

        public int getCount() {
            return mThumbIds.length;
        }

        public Object getItem(int position) {
            return null;
        }

        public long getItemId(int position) {
            return 0;
        }

        // create a new ImageView for each item referenced by the Adapter
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView imageView;
            if (convertView == null) {
                imageView = new ImageView(mContext);
                imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
                imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                imageView.setPadding(8, 8, 8, 8);
            } else {
                imageView = (ImageView) convertView;
            }

            imageView.setImageResource(mThumbIds[position]);
            return imageView;
        }
        private Integer[] mThumbIds = {
                R.drawable.smileys, R.drawable.animals,
                R.drawable.food, R.drawable.activities,
                R.drawable.symbols, R.drawable.objects,
                R.drawable.travel, R.drawable.flags,
        };
    }

MainActivity.java MainActivity.java

    package com.example.android.whattheemoticon;

    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.GridView;
    import android.widget.Toast;

    public class MainActivity extends AppCompatActivity {

        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

    //display images using gridview.
            GridView gridview = (GridView) findViewById(R.id.gridview);
            gridview.setAdapter(new ImageAdapter(this));
    //onClickListeners for each clickable imageViews.
     gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
       public void onItemClick(AdapterView<?> parent, View v,
                                        int position, long id) {
//create toast for view when clicked.
     Toast.makeText(MainActivity.this, "" + position, Toast.LENGTH_SHORT).show();
                }
            });
        }
    }

I'm trying to add toast message for each images which are displayed using GridView , i'm ended up adding the code for toast to work for each grid . 我试图为使用GridView显示的每个图像添加Toast消息,最后我添加了Toast的代码以适用于每个网格。 And i have completed adding and displaying the images in GridView . 我已经完成了在GridView添加和显示图像。 Please help me out for how to display the right toast message for each image while clicked by an user. 请帮助我了解如何在用户单击时为每个图像显示正确的祝酒消息。

@Rajashekar. @Rajashekar。 Here is an example. 这是一个例子。

public class MainActivity extends AppCompatActivity {

     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);

        //display images using gridview.
        GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(new ImageAdapter(this));
        final ArrayList<String> message = new ArrayList<>();
        message.add("Message for image 0");
        message.add("Message for image 1");
        message.add("Message for image 2");
        //onClickListeners for each clickable imageViews.
        gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   public void onItemClick(AdapterView<?> parent, View v,
                                    int position, long id) {
   //create toast for view when clicked.
    String mess = message.get(position);
    Toast.makeText(MainActivity.this, "" + mess, Toast.LENGTH_SHORT).show();
            }
        });
    }
}

Declare an array like this : 声明这样的数组:

String arr[ImageCount] = {"Message for first image", "Message for second image"......};

Then use a function to print Toast Message like this : 然后使用一个函数来打印Toast Message,如下所示:

public void showToast(int pos){
       for(int i = 0; i<=pos; i++){
                if(i == pos){
                     Toast.makeText(Context, arr[i], Toast.LENGTH_SHORT).show();
                     break;
                 }
        }
  }

Now call the function : 现在调用函数:

public void onItemClick(AdapterView<?> parent, View v,
                                    int position, long id) {
           showToast(position);
            }

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

相关问题 使用随机模式时,每个ImageView如何显示不同的图片? Android Studio - How can each ImageView show a different picture when using random? Android Studio Android Toast 消息不起作用 - Android Toast Messages not working 如何在GridView中的imageView中添加Click Listener? - How to add click Listener in imageView that in GridView? 如何在GridView(Android)内部动态替换ImageView? - How to dynamically replace ImageView Inside a GridView (Android)? 如何使 ImageView 在 Android (Java) 的 GridView 中四舍五入? - How to make the ImageView rounded in GridView of Android (Java)? 如何在Android Studio中的imageView上添加具有不同轴的两个旋转? - how to add two rotation with different pivots on a imageView in android studio? 在gridview中设置按钮和imageview以及如何设置它们各自的侦听器 - Set button and imageview in gridview and how to set each of them listener 如何在Android中使用Java将ImageView添加到空布局 - How to add an ImageView to an empty layout using java in android 如何验证是否显示 toast 消息? - How to verify if toast message is displayed? Android - 在自定义 Toast 类中编程 ImageView 约束 - Android - Program ImageView Constraints in Custom Toast Class
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM