Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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:在填充ListView元素后执行一些操作_Android - Fatal编程技术网

Android:在填充ListView元素后执行一些操作

Android:在填充ListView元素后执行一些操作,android,Android,我有一个带有listview和附加页脚的活动。我创建了用于填充ListView的自定义适配器。填好后,我需要做一些动作。 这是我的活动的代码部分: public class MainActivity extends ListActivity { final public String NO_USERS_IN_DB = "No users yet, please add some..."; DBAdapter db = new DBAdapter(this); Activity activity

我有一个带有listview和附加页脚的活动。我创建了用于填充ListView的自定义适配器。填好后,我需要做一些动作。 这是我的活动的代码部分:

public class MainActivity extends ListActivity {

final public String NO_USERS_IN_DB = "No users yet, please add some...";
DBAdapter db = new DBAdapter(this);
Activity activity = MainActivity.this;
private static final Pattern PATTERN = Pattern.compile(": *([^|]+)");
private static final int REQUEST_LOAD = 0;
boolean rewrite;
boolean userSelected = false;
final public int REQUEST_SAVE = 1;
boolean showAvatars;
boolean settingsGot = false;
int backgroundColor;
int titleColor;
int buttonBackgroundColor;
int buttonTextColor;

public class MyCustomAdapter extends ArrayAdapter<String> {

    public MyCustomAdapter(Context context, int textViewResourceId,
            String[] objects) {
        super(context, textViewResourceId, objects);

    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //return super.getView(position, convertView, parent);
        if(!settingsGot){
            getSettings();
            settingsGot = true;
        }
        String[] users = getUsers();
        LayoutInflater inflater=getLayoutInflater();
        View row=inflater.inflate(R.layout.main, parent, false);    
        TextView label=(TextView)row.findViewById(R.id.label);
        label.setText(users[position]);
        if(showAvatars){
            ImageView icon=(ImageView)row.findViewById(R.id.icon);
            byte[] bb = getAvatar(users[position]);
            if(bb != null && bb.length != 0){
                icon.setImageBitmap(BitmapFactory.decodeByteArray(bb, 0, bb.length));
                icon.setVisibility(View.VISIBLE);
            }
        }
        return row;
    }

}

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    db.open();
    String[] users = db.getUsersList();
    boolean showList = true;
    if (users[0].equals("NOUSERSINTHEBASE")){
        users[0] = NO_USERS_IN_DB;
    }
    if (showList){
    View footer = getLayoutInflater().inflate(R.layout.footer, null);
    ListView listView = getListView();
    listView.addFooterView(footer);
    this.setListAdapter(new MyCustomAdapter(this,
            R.layout.main, users));
    }else{
        setContentView(R.layout.footer);
    }
    db.close();
}
public类MainActivity扩展了ListActivity{
最后一个公共字符串NO_USERS_IN_DB=“还没有用户,请添加一些…”;
DBAdapter db=新的DBAdapter(此);
Activity=MainActivity.this;
private static final Pattern=Pattern.compile(“:*([^ |]+)”;
私有静态最终整数请求_LOAD=0;
布尔重写;
布尔userSelected=false;
最终公共整数请求_SAVE=1;
布尔显示化身;
布尔设置got=false;
背景色;
int标题颜色;
int按钮背景色;
int buttonextcolor;
公共类MyCustomAdapter扩展了ArrayAdapter{
公共MyCustomAdapter(上下文,int textViewResourceId,
字符串[]对象){
超级(上下文、textViewResourceId、对象);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//返回super.getView(position、convertView、parent);
如果(!settingsGot){
getSettings();
设置got=true;
}
字符串[]users=getUsers();
LayoutInflater充气机=getLayoutInflater();
视图行=充气机。充气(R.layout.main,父级,false);
TextView标签=(TextView)row.findViewById(R.id.label);
label.setText(用户[位置]);
如果(显示头像){
ImageView图标=(ImageView)row.findViewById(R.id.icon);
字节[]bb=getAvatar(用户[位置]);
如果(bb!=null&&bb.length!=0){
icon.setImageBitmap(BitmapFactory.decodeByteArray(bb,0,bb.length));
icon.setVisibility(View.VISIBLE);
}
}
返回行;
}
}
/**在首次创建活动时调用*/
@凌驾
创建公共空间(捆绑冰柱){
超级冰柱;
db.open();
字符串[]users=db.getUsersList();
布尔showList=true;
if(用户[0].equals(“NOUSERSINTHEBASE”)){
用户[0]=数据库中没有用户;
}
如果(显示列表){
视图页脚=GetLayoutFlater()。充气(R.layout.footer,null);
ListView ListView=getListView();
添加页脚视图(页脚);
this.setListAdapter(新的MyCustomAdapter(此,
R.layout.main,用户);
}否则{
setContentView(R.layout.footer);
}
db.close();
}

因此,在方法
getView
完成工作后,我需要执行一些操作?

在setListAdapter之后,您可以更改它…

在setListAdapter之后,您可以更改它…

嗯..我想我以前问错了。忘了颜色吧。在调用getView方法之后,我如何才能执行一些操作?@Angrybambr:您想解释一下getView()之后的一些操作吗我想通过LinearLayout back2=(LinearLayout)findViewById(R.id.footer_layout);back2.setBackgroundColor(backgroundColor);更改页脚布局的背景色;如果我在getView之前尝试这样做,它会抛出异常粘贴该异常。我想您得到的是
NullPointerException
.11-21 11:20:46.085:E/AndroidRuntime(646):java.lang.RuntimeException:无法启动活动组件信息{com.angrybambr.gomelauto/com.angrybambr.gomelauto.MainActivity}:java.lang.NullPointerExceptionHm..我想我以前问错了。忘了颜色吧。调用getView方法后,我如何才能执行一些操作?@Angrybambr:您想解释一下
getView()
getView()之后的一些操作吗我想通过LinearLayout back2=(LinearLayout)更改页脚布局的背景色findViewById(R.id.footer_layout);back2.setBackgroundColor(backgroundColor);如果我在getView之前尝试这样做,它会抛出异常粘贴该异常。我认为您得到的是
NullPointerException
.11-21 11:20:46.085:E/AndroidRuntime(646):java.lang.RuntimeException:无法启动活动组件信息{com.angrybambr.gomelauto/com.angrybambr.gomelauto.MainActivity}:java.lang.NullPointerException