我在第一次启动时使用我复制的代码显示一个AlertDialog并且不完全理解,但它作为EULA非常有用。我想用较小的字体显示longwinded法律文本。文本从RES / ASSETS目录中的文件加载。
我猜测标准的AlertDialog有内置的TextView吗?如果是这种情况,那么我需要访问它然后更改TextView的TextSize属性?谢谢你的任何建议。
答案 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
目录和您的公司!