Android setText未更新

Android setText未更新,android,Android,这是代码,我想在随机选择的图像之后设置Textview数组。。它没有更新文本。我正在将上下文和视图传递给我的其他活动的这个类的构造函数?这是非活动类如何实现的呢 public class DisplayObject { Random _randomGenerator = new Random(); int hudDisplay[] = { R.id.HUD_Text_Element1, R.id.HUD_Text_Element2,

这是代码,我想在随机选择的图像之后设置Textview数组。。它没有更新文本。我正在将上下文和视图传递给我的其他活动的这个类的构造函数?这是非活动类如何实现的呢

public class DisplayObject {
    Random _randomGenerator = new Random();
    int hudDisplay[] = {
        R.id.HUD_Text_Element1,
        R.id.HUD_Text_Element2,
        R.id.HUD_Text_Element3,
        R.id.HUD_Text_Element4,
        R.id.HUD_Text_Element5,
        R.id.HUD_Text_Element6,
        R.id.HUD_Text_Element7
    };

    static View[] _hiddenObjects;
    int NO_OF_OBJECTS = 15;
    TextView[] _HudTextDisplay = new TextView[7];

    public HiddenObject(Context context, View v) {
        // TODO Auto-generated constructor stub

        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View huddisplay = inflater.inflate(R.layout.gameplay, null);
        /*NO_OF_OBJECTS = context.getResources().getInteger(R.integer.NO_OF_OBJECTS_AVAILABLE_PER_LEVEL);*/
        _hiddenObjects = new View[NO_OF_OBJECTS];
        random();

        for (int i = 0; i < hudDisplay.length; ++i) {
            _HudTextDisplay[i] = (TextView) huddisplay.findViewById(hudDisplay[i]);
            _HudTextDisplay[i].setText(_hiddenObjects[i].getTag().toString());
        }
    }

    public void random() {
        List<Integer> generated = new ArrayList<Integer>();
        for (int i = 0; i < NO_OF_OBJECTS; ++i) {
            while (true) {
                Integer next = _randomGenerator.nextInt(GamePlayActivity._hiddenObjects.length);
                if (!generated.contains(next)) {
                    _hiddenObjects[i] = GamePlayActivity._hiddenObjects[next];
                    Log.d("Check", "Image is " + _hiddenObjects[i].getTag());

                    generated.add(next);
                    break;
                }
            }
        }
    }
}
公共类DisplayObject{
Random _randomGenerator=新随机();
int HUD显示[]={
R.id.HUD\U文本元素1,
R.id.HUD\U文本元素2,
R.id.HUD\U文本元素3,
R.id.HUD\U文本元素4,
R.id.HUD\U文本元素5,
R.id.HUD\U文本元素6,
R.id.HUD\U文本\U元素7
};
静态视图[]\u隐藏对象;
int NO_OF_OBJECTS=15;
TextView[]_HudTextDisplay=新的TextView[7];
公共HiddenObject(上下文,视图v){
//TODO自动生成的构造函数存根
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
查看HUD显示=充气机。充气(R.layout.gameplay,null);
/*没有\u个对象=context.getResources().getInteger(R.integer.NO\u个对象\u每个\u级别可用)*/
_hiddenObjects=新视图[没有对象];
随机();
对于(int i=0;i

如何设置文本视图的文本

您应该在
setText(…)
之后调用
postInvalidate()
,而不是提前

 ...
 _HudTextDisplay[i].setText(_hiddenObjects[i].getTag().toString());
 _HudTextDisplay[i].postInvalidate();
 ...

对于有此问题的任何人,您可能必须将setText方法放在这个

    ((Activity) context).runOnUiThread(new Runnable() { 
        @Override
        public void run() {
            ((EditText)editText).setText(text);
        }
    });

你能给我所有的_hiddenObjects[i].getTag().toString()的值吗?在
.setText()
行上放一个断点,然后运行调试器。它真的被调用了吗?@Samir所有标记的值都是Image1、image2等等。。我在myconsole中获得输出,但在我的UI@TheLastBert:我在myconsole中获得了输出,但在我的UI中没有更新。提醒其他读者,如果没有更新,请仔细检查TextView的可见性。在调用
setText()后,我从未在文本视图上调用过
postInvalidate()
@TheLastBert:那你怎么做呢?如何在上面的事情中设置文本是不可能的updated@user1201239该类是否在UI线程之外使用?如果是这种情况,您必须使用handler,例如。。听着,你知道为什么吗?在此之前,我没有遇到过此问题。这解决了我在活动中遇到的问题,其中活动的一部分摄影机处于预览模式,我需要更新同一活动中的其他视图。在我的情况下不起作用。在API级别19上遇到此问题。21+没有问题。这个解决方案很有帮助,但如果有人能解释为什么会发生这种情况,我将不胜感激。