成功请求android后如何更改视图?
我有一段代码:成功请求android后如何更改视图?,android,android-fragments,callback,request,android-view,Android,Android Fragments,Callback,Request,Android View,我有一段代码: public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { tableView = inflater.inflate(R.layout.fragment_table, container, false); View layout = inflater.inflate(R.layout.fragment_1,
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
tableView = inflater.inflate(R.layout.fragment_table, container, false);
View layout = inflater.inflate(R.layout.fragment_1, container, false);
if (roomArray == null || roomArray.isEmpty()) {
roomArray = getTablesList(new VolleyCallback() {
@Override
public void onSuccess(ArrayList<RoomsClass> result) {
Toast.makeText(getActivity(), "onSuccess", Toast.LENGTH_LONG).show();
}
});
} else {
ArrayList<View> tableList = new ArrayList<>();
ArrayList<Tables> tables;
Toast.makeText(getActivity(), "IsNotNull", Toast.LENGTH_LONG).show();
tables = roomArray.get(0).getTables();
GridLayout gridLayout = (GridLayout) layout.findViewById(R.id.grid_layout);
for (int i = 0; i < 1; i++) {
tableView = inflater.inflate(R.layout.fragment_table, container, false);
TextView textView = (TextView) tableView.findViewById(R.id.table_number);
textView.setText(tables.get(i).getTableNumber());
GridLayout.Spec row = GridLayout.spec(i / 5);
GridLayout.Spec col = GridLayout.spec(i);
GridLayout.LayoutParams params = new GridLayout.LayoutParams(row, col);
gridLayout.addView(tableList.get(i), i, params);
}
}
return layout;
}
创建视图时的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
tableView=充气机。充气(R.layout.fragment_表,容器,假);
视图布局=充气机。充气(R.layout.fragment_1,容器,假);
if(roomArray==null | | roomArray.isEmpty()){
roomArray=getTablesList(新的截击回调(){
@凌驾
成功时公共无效(ArrayList结果){
Toast.makeText(getActivity(),“onSuccess”,Toast.LENGTH_LONG.show();
}
});
}否则{
ArrayList tableList=新的ArrayList();
数组列表;
Toast.makeText(getActivity(),“IsNotNull”,Toast.LENGTH_LONG.show();
tables=roomArray.get(0.getTables();
GridLayout=(GridLayout)layout.findviewbyd(R.id.grid\u layout);
对于(int i=0;i<1;i++){
tableView=充气机。充气(R.layout.fragment_表,容器,假);
TextView TextView=(TextView)tableView.findViewById(R.id.table_编号);
setText(tables.get(i.getTableNumber());
GridLayout.Spec行=GridLayout.Spec(i/5);
GridLayout.Spec col=GridLayout.Spec(i);
GridLayout.LayoutParams params=新的GridLayout.LayoutParams(行、列);
addView(tableList.get(i),i,params);
}
}
返回布局;
}
所以我已经成功了,但是我不能在片段中添加视图。我需要在onSuccess之后调用所有方法,但是它是内部类,所以我无法在那里处理任何事情。那么,正确的方法是什么呢?是否在createView中膨胀两个片段
tableView = inflater.inflate(R.layout.fragment_table, container, false);
View layout = inflater.inflate(R.layout.fragment_1, container, false);
如果您尝试使用handler来解决这个问题,那么使用handler可以避免在内部类中执行某些操作
Handler myHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case a:
//do somthing
break;
}
super.handleMessage(msg);
}
};
是的,我知道,这是错误的吗?)我只使用1个充气机进行2次查看。也许我应该使用layoutinflater或其他什么,但这还不是重点。处理程序、适配器或其他什么?我不知道,如果有帮助的话,告诉我更多。