在我的应用程序中,当您单击时会出现一个按钮,将出现一个警报对话框.该警报对话框由单选列表项组成.这里我想设置单选项列表项的文本大小.可能吗?如果是的话怎么做
以下是我的代码
sclist.java
package com.examples.scl;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class sclist extends Activity {
private static final int DIALOG_SINGLE_CHOICE = 1;
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_SINGLE_CHOICE:
return new AlertDialog.Builder(sclist.this)
.setIcon(R.drawable.alert_dialog_icon)
.setTitle("Single choice list")
.setSingleChoiceItems(R.array.select_dialog_items2, 0, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked on a radio button do some stuff */
}
})
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked Yes so do some stuff */
}
})
.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked No so do some stuff */
}
})
.create();
}
return null;
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* Display a radio button group */
Button radioButton = (Button) findViewById(R.id.radio_button);
radioButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
showDialog(DIALOG_SINGLE_CHOICE);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
met*_*yze 13
我刚刚在一个正在进行的匹配游戏中遇到过这个问题.我的解决方案并不简单,但我想使用自定义字体,我没有看到使用2.2 Android界面(这是我的目标)的简单方法.诀窍是在显示之前将OnShowListener附加到警报对话框.在该侦听器中,从ListView中获取ListAdapter并使用代理对象将其包装,该代理对象转发除getView之外的所有调用.在该函数中,将View强制转换为TextView,设置字体和大小,然后返回视图.这是我的代码:
// Add your list with builder up here
AlertDialog alert = builder.create();
alert.setOnShowListener(new OnShowListener() {
@Override
public void onShow(DialogInterface alert) {
ListView listView = ((AlertDialog)alert).getListView();
final ListAdapter originalAdapter = listView.getAdapter();
listView.setAdapter(new ListAdapter()
{
@Override
public int getCount() {
return originalAdapter.getCount();
}
@Override
public Object getItem(int id) {
return originalAdapter.getItem(id);
}
@Override
public long getItemId(int id) {
return originalAdapter.getItemId(id);
}
@Override
public int getItemViewType(int id) {
return originalAdapter.getItemViewType(id);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = originalAdapter.getView(position, convertView, parent);
TextView textView = (TextView)view;
textView.setTypeface(MyFontUtil.getTypeface(MyActivity,MY_DEFAULT_FONT));
textView.setTextColor(Color.BLACK);
textView.setTextSize(25); // FIXIT - absolute size
return view;
}
@Override
public int getViewTypeCount() {
return originalAdapter.getViewTypeCount();
}
@Override
public boolean hasStableIds() {
return originalAdapter.hasStableIds();
}
@Override
public boolean isEmpty() {
return originalAdapter.isEmpty();
}
@Override
public void registerDataSetObserver(DataSetObserver observer) {
originalAdapter.registerDataSetObserver(observer);
}
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
originalAdapter.unregisterDataSetObserver(observer);
}
@Override
public boolean areAllItemsEnabled() {
return originalAdapter.areAllItemsEnabled();
}
@Override
public boolean isEnabled(int position) {
return originalAdapter.isEnabled(position);
}
});
}
});
alert.show();
Run Code Online (Sandbox Code Playgroud)
如果您想在几周内在Android电子市场上看到它的实际效果.搜索metaphyze(我的发布商ID).我还没决定叫什么.(这不是"FlashMatch Chinese I Free".这是我的第一个游戏.这是一个孩子的配对游戏.玩游戏并在结尾点击图片.你会看到带有样式列表的AlterDialog.).