簡體   English   中英

Android Toast消息顯示

[英]Android Toast message display

我有產品清單。 當用戶單擊該行時, Toast消息將顯示產品的名稱。

我想在每個產品行上顯示Toast 。我想在用戶點擊列表'行的位置顯示Toast

看我的照片;

在此輸入圖像描述 目前顯示列表中心:

我喜歡這樣:

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();
    }
});

試試這個,

int[] values= new int[2];
view.getLocationOnScreen(values);
int x = values[0];
int y = values[1] ;

toast.setGravity(Gravity.TOP|Gravity.LEFT, x, y);

setGravity()的第2和第3個參數是第1個參數中指定的常量的x和y偏移量。 您需要獲取要在上面放置吐司的行視圖對象的x和y位置。 或者你可以得到觸摸事件的x和y。

我個人會從setGravity(Gravity.TOP|Gravity.LEFT,0,0)開始setGravity(Gravity.TOP|Gravity.LEFT,0,0)

我想你有一個onClickonItemClick -listener。 如果是這樣,則會向其傳遞View -parameter。 傳遞的View是被點擊的視圖(列表的條目)。 您可以使用getY()方法獲取它的Y位置。

你應該總是水平居中Toast,讓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();
}

我沒有測試它,但它應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM