Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android如何在警报对话框中设置列表项的文本大小_Android - Fatal编程技术网

android如何在警报对话框中设置列表项的文本大小

android如何在警报对话框中设置列表项的文本大小,android,Android,在我的应用程序中,当您单击一个按钮时,会出现一个警报对话框。该警报对话框由单选列表项组成。这里我想设置单选列表项的文本大小。 可能吗?如果是,如何做 下面是我的代码 sclist.java package com.examples.scl; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface;

在我的应用程序中,当您单击一个按钮时,会出现一个警报对话框。该警报对话框由单选列表项组成。这里我想设置单选列表项的文本大小。 可能吗?如果是,如何做

下面是我的代码

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

好问题。我相信你必须使用AlertDialog.Builder构造器,该构造器也包含一个主题,看看你是否能在该描述中看到有用的东西,我自己从未尝试过。

我只是在我正在开发的一个匹配游戏中遇到了这个问题。我的解决方案并不简单,但我想使用自定义字体,而且我没有看到一种简单的方法可以使用2.2 Android界面(这正是我的目标)。诀窍是在显示警报对话框之前将OnShowListener附加到警报对话框。在该侦听器中,将ListAdapter从ListView中取出,并使用一个代理对象将其包装,该代理对象转发除getView之外的所有调用。在该函数中,将视图强制转换为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();

如果你想看到它的实际应用,几周后看看Android市场。搜索干骺端(我的发布者id)。我还没决定怎么称呼它。(这不是“FlashMatch Chinese I Free”。这是我的第一个游戏。这是一个儿童配对游戏。玩这个游戏并点击最后的图片。你会看到带有样式列表的AlterDialog。)。

另外,在提问之前先搜索一下。这个问题以前已经回答过了。真的吗?因为我在寻找这个确切的东西,但我找不到答案。关于如何更改警报对话框中消息的格式,这里有答案,但没有singleChoiceItems。如果你在其他地方看到它的答案,一个链接会很有帮助。遗憾的是,只有在API 11I知道它很旧的情况下才可用,但它在类似的方面(在列表首选项中)帮助了我,所以+1+1 OP(问题)和上面的答案帮助我了解了如何设置颜色和其他属性。但是在我的示例中,如何在单击时获取项目ID或分别设置项目的颜色和其他属性?假设我单击列表中的一个项目,并希望所单击的项目具有绿色背景/文本颜色?答案很棒。我想为
列表视图中的每一行使用不同的自定义字体,这是迄今为止我发现的最好的方法!谢谢