AlertDialog文本属性

时间:2010-12-22 01:53:06

标签: android

我在第一次启动时使用我复制的代码显示一个AlertDialog并且不完全理解,但它作为EULA非常有用。我想用较小的字体显示longwinded法律文本。文本从RES / ASSETS目录中的文件加载。

我猜测标准的AlertDialog有内置的TextView吗?如果是这种情况,那么我需要访问它然后更改TextView的TextSize属性?谢谢你的任何建议。

3 个答案:

答案 0 :(得分:2)

我不知道使用标准AlertDialog中的TextView来实现此目的。但是很容易添加自己的TextView,你可以控制它的大小(和其他方面)。

TextView myView = new TextView(getApplicationContext());
myView.setText("blahblahblahblahblahblahblahblah");
myView.setTextSize(10);
AlertDialog.Builder builder = new AlertDialog.Builder(YOURACTIVITY.this);
builder.setView(myView)
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int id) {
            // put your code here
       }
   })
.setNegativeButton("No", new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int id) {
           // put your code here 
           dialog.cancel();
       }
   });


AlertDialog alertDialog = builder.create();
alertDialog.show();

答案 1 :(得分:1)

我认为你不必使用Eula的警告对话框。这是一个单独的过程。 你可以去创建EULA这个链接。

  

http://bees4honey.com/blog/tutorial/adding-eula-to-android-app/

答案 2 :(得分:1)

要使用外部文件作为AlertDialog的内容,请尝试以下操作:

`start_builder.setMessage(readRawTextFile(CONTEXT, R.raw.tos))
            .setCancelable(false)
            .setTitle(R.string.TOS_TITLE)
            .setPositiveButton("Accept", new DialogInterface.OnClickListener(){
                public void onClick(DialogInterface dialog, int id){
                    dialog.cancel(); // ToS accepted, run the program.
                }
            }) ...`

并且readRawTextFile()方法定义为:

`/**
 * Helper method to read in the text based files that are used to populate
 * dialogs and other information used in the program.
 * 
 * @param contex The context of the method call
 * @param resId The resource ID of the text file from the \src\raw\ directory and registered
 *              in R.java.
 * @return String Returns a String of the text contained in the resource file.
 */
public static String readRawTextFile(Context contex, int resId)
{
    InputStream inputStream = contex.getResources().openRawResource(resId);

    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

    int i;
    try {
        i = inputStream.read();
        while (i != -1)
        {
            byteArrayOutputStream.write(i);
            i = inputStream.read();
        }
        inputStream.close();
    } catch (IOException e) {
        return null;
    }
    return byteArrayOutputStream.toString();
}`

最后一段不是我的,look here for the SO question that I got it from。非常适合显示我的EULA。只需将源文本文件移动到raw目录和您的公司!