有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android Toast消息显示

我有产品清单。当用户单击该行时,Toast消息将显示产品的名称

我想在每个产品行上显示Toast。我想在用户单击列表行的位置显示祝酒词

看我的照片

enter image description here 当前显示列表中心:

我喜欢这样:

tablerow.setOnClickListener(new View.OnClickListener() {

    public void onClick(View view) {

        Toast prName = Toast.makeText(RetailerOrderActivity.this,
            " Name : " + productList.get(Integer.parseInt(view.getTag().toString())).getDescription(),
            Toast.LENGTH_SHORT);
        prName.setGravity(Gravity.AXIS_SPECIFIED, 0, 0);
        prName.show();
    }
});

共 (3) 个答案

  1. # 1 楼答案

    setGravity()的第二个和第三个参数是第一个参数中指定的常数的x和y偏移量。你需要得到x&;要在上面放置烤面包片的行视图对象的y位置。或者你可以得到x&;触摸事件的结果

    就我个人而言,我会从setGravity(Gravity.TOP|Gravity.LEFT,0,0)开始

  2. # 2 楼答案

    试试这个

    int[] values= new int[2];
    view.getLocationOnScreen(values);
    int x = values[0];
    int y = values[1] ;
    
    toast.setGravity(Gravity.TOP|Gravity.LEFT, x, y);
    
  3. # 3 楼答案

    我猜你在某处有一个onClickonItemClick听众。如果是这样,则向其传递一个View-参数。传递的View是单击的视图(列表的条目)。您可以使用getY()-方法获得它的Y位置

    你应该始终将吐司水平居中,让Toast决定宽度

    因此,您的代码可能看起来像这样(使用onItemClick-listener):

    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // Get the Y-position:
        int y = (int) view.getY();
        // Create the Toast:
        Toast toast = Toast.makeText(RetailerOrderActivity.this,
            " Name : " + productList.get(Integer.parseInt(view.getTag().toString())).getDescription(),
            Toast.LENGTH_SHORT
        );
        // Set the position:
        toast.setGravity(Gravity.CENTER_HORIZONTAL, 0, y);
        // Show the Toast:
        toast.show();
    }
    

    我没有测试它,但它应该可以工作