Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.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 将TextView添加到AsyncTask内的RelativeLayout无效_Android_Textview_Android Relativelayout - Fatal编程技术网

Android 将TextView添加到AsyncTask内的RelativeLayout无效

Android 将TextView添加到AsyncTask内的RelativeLayout无效,android,textview,android-relativelayout,Android,Textview,Android Relativelayout,我正在向RelativeLayout添加一些文本视图。我延长了你的时间。我可以在构造函数定义中添加TextView。我可以看到viw上的项目。但同样的代码,当我在AyncTask的onPostExecute中使用或使用post()方法时,TextView不会添加到布局中。两地执行相同的coe。我刚更改了上边距 这是我的密码 TextView tv = new TextView(context); addView(tv); tv.setHeight(49); tv.s

我正在向RelativeLayout添加一些文本视图。我延长了你的时间。我可以在构造函数定义中添加TextView。我可以看到viw上的项目。但同样的代码,当我在AyncTask的onPostExecute中使用或使用post()方法时,TextView不会添加到布局中。两地执行相同的coe。我刚更改了上边距

这是我的密码

TextView tv = new TextView(context);
    addView(tv);


    tv.setHeight(49);

    tv.setWidth(100);

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    params.leftMargin = (int) 0;
    params.topMargin = (int) 600;
    tv.setLayoutParams(params);
======================实施================================

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        DateDetailsScrollView sc = new DateDetailsScrollView(container.getContext());

        new SyncInThread().execute(sc);
        return sc;
    }
private static class SyncInThread extends AsyncTask<Object, Void, String> {

    private ArrayList<EVT> _mEvents = new ArrayList<EVT>();
    DateDetailsScrollView _lv = null;

    @Override
    protected String doInBackground(Object... cal) {
        _lv = (DateDetailsScrollView)cal[0];

        //The SQL cannot be shared here... Please forgive me.
        boolean f = cursor.moveToFirst();
        while(f) {
            EVT evt = new EVT();
            evt.loadFromCursor(cursor);
            f = cursor.moveToNext();
            _mEvents.add(evt);
            cc++;
        }
        return "";
    }

    @Override
    protected void onPostExecute(String result) {

        for(EVT ev : _EVT) {
            _lv.addEvent(ev);
        }

    }

}


public class DateDetailsScrollView extends ScrollView {
    private EventRelativeLayout _mEventLayout = null;

    public DateDetailsScrollView(Context context) {
        super(context);
        _mEventLayout = new EventRelativeLayout(context);
        ll.addView(_mEventLayout);
        LinearLayout ll = new LinearLayout(context);
        ll.setOrientation(LinearLayout.HORIZONTAL);
        addView(ll);
    }


    public void addEvent(final VEVENT evt) {
            _mEventLayout.addEvent(evt);
            invalidate();
            this.refreshDrawableState();
    }
}



    public class EventRelativeLayout extends RelativeLayout {


public EventRelativeLayout(Context context) {
    //This works fine.
    super(context);
    TextView tv = new TextView(context);
    addView(tv);

    int[] colors = { 0xFF052d42, 0xFF096da0 };
    GradientDrawable drawable = new GradientDrawable(
            GradientDrawable.Orientation.TOP_BOTTOM, colors);

    tv.setBackgroundColor(0xFF290202);
    tv.setBackgroundDrawable(drawable);
    tv.setHeight(49);

    tv.setWidth(100);

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    params.leftMargin = (int) 0;
    params.topMargin = (int) 100;
    tv.setLayoutParams(params);

}

public void addEvent(EVT evt) {



    TextView tv = new TextView(getContext());
    addView(tv);

    int[] colors = { 0xFF052d42, 0xFF096da0 };
    GradientDrawable drawable = new GradientDrawable(
            GradientDrawable.Orientation.TOP_BOTTOM, colors);

    tv.setBackgroundColor(0xFF290202);
    tv.setBackgroundDrawable(drawable);
    tv.setHeight(100);

    int dm = em -eh;
    int dh = eh - sh;
    if( dm < 0) {
        dm += 60;
        dh--;
    }

    tv.setWidth(100);

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    params.leftMargin = 0;
    params.topMargin = 600;
    tv.setHeight(49);
    tv.setLayoutParams(params);


}
=========================异步任务===================================

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        DateDetailsScrollView sc = new DateDetailsScrollView(container.getContext());

        new SyncInThread().execute(sc);
        return sc;
    }
private static class SyncInThread extends AsyncTask<Object, Void, String> {

    private ArrayList<EVT> _mEvents = new ArrayList<EVT>();
    DateDetailsScrollView _lv = null;

    @Override
    protected String doInBackground(Object... cal) {
        _lv = (DateDetailsScrollView)cal[0];

        //The SQL cannot be shared here... Please forgive me.
        boolean f = cursor.moveToFirst();
        while(f) {
            EVT evt = new EVT();
            evt.loadFromCursor(cursor);
            f = cursor.moveToNext();
            _mEvents.add(evt);
            cc++;
        }
        return "";
    }

    @Override
    protected void onPostExecute(String result) {

        for(EVT ev : _EVT) {
            _lv.addEvent(ev);
        }

    }

}


public class DateDetailsScrollView extends ScrollView {
    private EventRelativeLayout _mEventLayout = null;

    public DateDetailsScrollView(Context context) {
        super(context);
        _mEventLayout = new EventRelativeLayout(context);
        ll.addView(_mEventLayout);
        LinearLayout ll = new LinearLayout(context);
        ll.setOrientation(LinearLayout.HORIZONTAL);
        addView(ll);
    }


    public void addEvent(final VEVENT evt) {
            _mEventLayout.addEvent(evt);
            invalidate();
            this.refreshDrawableState();
    }
}



    public class EventRelativeLayout extends RelativeLayout {


public EventRelativeLayout(Context context) {
    //This works fine.
    super(context);
    TextView tv = new TextView(context);
    addView(tv);

    int[] colors = { 0xFF052d42, 0xFF096da0 };
    GradientDrawable drawable = new GradientDrawable(
            GradientDrawable.Orientation.TOP_BOTTOM, colors);

    tv.setBackgroundColor(0xFF290202);
    tv.setBackgroundDrawable(drawable);
    tv.setHeight(49);

    tv.setWidth(100);

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    params.leftMargin = (int) 0;
    params.topMargin = (int) 100;
    tv.setLayoutParams(params);

}

public void addEvent(EVT evt) {



    TextView tv = new TextView(getContext());
    addView(tv);

    int[] colors = { 0xFF052d42, 0xFF096da0 };
    GradientDrawable drawable = new GradientDrawable(
            GradientDrawable.Orientation.TOP_BOTTOM, colors);

    tv.setBackgroundColor(0xFF290202);
    tv.setBackgroundDrawable(drawable);
    tv.setHeight(100);

    int dm = em -eh;
    int dh = eh - sh;
    if( dm < 0) {
        dm += 60;
        dh--;
    }

    tv.setWidth(100);

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    params.leftMargin = 0;
    params.topMargin = 600;
    tv.setHeight(49);
    tv.setLayoutParams(params);


}
私有静态类SyncInThread扩展异步任务{
private ArrayList _mEvents=new ArrayList();
DateDetailsScrollView _lv=null;
@凌驾
受保护字符串doInBackground(对象…校准){
_lv=(DateDetailsScrollView)cal[0];
//SQL不能在这里共享…请原谅我。
布尔值f=cursor.moveToFirst();
while(f){
EVT EVT=新的EVT();
evt.loadFromCursor(光标);
f=游标。moveToNext();
_添加(evt);
cc++;
}
返回“”;
}
@凌驾
受保护的void onPostExecute(字符串结果){
对于(EVT ev:_EVT){
_低压附加电压(ev);
}
}
}
公共类DateDetailsScrollView扩展了ScrollView{
private EventRelativeLayout\u mEventLayout=null;
公共DateDetailsScrollView(上下文){
超级(上下文);
_mEventLayout=新事件相对论(上下文);
ll.addView(_mEventLayout);
LinearLayout ll=新的LinearLayout(上下文);
ll.设置方向(水平线性布局);
addView(ll);
}
公共无效添加事件(最终事件evt){
_mEventLayout.addEvent(evt);
使无效();
此.refreshDrawableState();
}
}
公共类EventRelativeLayout扩展了RelativeLayout{
public EventRelativeLayout(上下文){
//这个很好用。
超级(上下文);
TextView tv=新的TextView(上下文);
addView(电视);
int[]颜色={0xFF052d42,0xFF096da0};
GradientDrawable可绘制=新的GradientDrawable(
GradientDrawable.Orientation.TOP\u-BOTTOM,颜色);
tv.setBackgroundColor(0xFF290202);
tv.可拉拔(可拉拔);
电视设定高度(49);
电视设置宽度(100);
RelativeLayout.LayoutParams params=新的RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_内容,RelativeLayout.LayoutParams.WRAP_内容);
params.leftMargin=(int)0;
参数topMargin=(int)100;
tv.setLayoutParams(参数);
}
公共无效添加事件(EVT EVT){
TextView tv=新的TextView(getContext());
addView(电视);
int[]颜色={0xFF052d42,0xFF096da0};
GradientDrawable可绘制=新的GradientDrawable(
GradientDrawable.Orientation.TOP\u-BOTTOM,颜色);
tv.setBackgroundColor(0xFF290202);
tv.可拉拔(可拉拔);
电视设置高度(100);
int dm=em-eh;
int-dh=eh-sh;
if(dm<0){
dm+=60;
dh--;
}
电视设置宽度(100);
RelativeLayout.LayoutParams params=新的RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_内容,RelativeLayout.LayoutParams.WRAP_内容);
params.leftMargin=0;
参数topMargin=600;
电视设定高度(49);
tv.setLayoutParams(参数);
}

}我明白了。这是一个编程错误,由于计算错误,veiw被添加到另一个页面。

这是一个相当大的页边空白。尝试将其设置为较小的值,看看发生了什么600不是实际的保证金。最初是10岁。这是带有一个TextView的测试代码,我创建了一个TextView来查看行为是否有所改进。