Toast的字符串太长 - 如何显示字符串的结尾而不是开头

时间:2015-01-03 23:46:09

标签: java android android-studio

好的,这可能是一个非常简单的问题。我有一个字符串值,我想在吐司中显示。例如......

String tempstring = "qwertyuiopasdfghjklzxcvbnm123456789012345678901234567890"; 
toast = Toast.makeText(getApplicationContext(), tempstring , Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();

我遇到的问题是我的程序中的tempstring通常会变得很大,文本的数量有时会大于toast可以显示的数量。当发生这种情况时,toast会从头开始显示文本并剪切结束。我希望toast始终显示字符串的结尾,但如果文本太多而无法在吐司中显示,则剪切开头。请问这是一种简单的方法吗?

2 个答案:

答案 0 :(得分:0)

这就是你需要的。它是在gmail应用程序中实现的。

https://code.google.com/p/romannurik-code/source/browse/misc/undobar/src/com/example/android/undobar/UndoBarController.java

因此,您可以根据需要使用尽可能多的行进行自定义烤面包布局 甚至切割东西。

答案 1 :(得分:0)

好好自己解决了这个问题。

它不太难......

答案是为吐司创建自定义视图。首先创建一个类似的XML文件...注意重要的一点是重力设置。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/custom_toast_layout_id"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#000"
android:orientation="horizontal"
android:padding="5dp"

>

<TextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:textColor="#FFF"
    android:gravity="bottom"
    />
</LinearLayout>

然后从你的祝酒词中引用这样的视图...

    LayoutInflater inflater = getLayoutInflater();

    View layout = inflater.inflate(R.layout.custom_toast,
            (ViewGroup) findViewById(R.id.custom_toast_layout_id));
    // set a message
    TextView text = (TextView) layout.findViewById(R.id.text);
    text.setText(themessage);

    toast = Toast.makeText(getApplicationContext(),
                    themessage, Toast.LENGTH_LONG);
    toast.setView(layout);
    toast.show();

完成工作......