这里的SU就是一个简单的xml帮助类,很简单就不放代码了。
虽然这玩意有点傻,但是这是一个比赛的设置页面较为简单的设置方法,总不能一个EditText的绑定进行数据设置之类的,太麻烦了,比赛毕竟是比的是时间。
/**
* 首先明确思路
* 1.我们为什么要创建这个类?
* 因为我们要在这个类里面进行主页面的数据的更改。
* 2.创建这个类的时候需要哪些附属类,作用是什么?
* 首先,在布局文件里面使用的是ListView这个控件,使用这个控件的原因是:代码量小
* 没有那么多的findViewById,并且做出来的UI界面也比较好看;所以跟着ListView控件
* 随之而来的有BaseAdapter适配器帮助类,以及数据类,视图控件帮助类。
*/
public class setActivity extends Activity {
//定义好相关的对象,并及时的初始化,防止没有必要的空对象异常
private SU su;//SU工具类的对象,用来储存以及读取数据。
private List mlist;//数据数组,这里使用的是ArrayList数组
private String[] values,names;//定义两个String类型的数组,一个用来存入数据,一个用来存入标题
private ListView listView;//这个就不用多说了
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.set);
//将布局文件关联此类
su=new SU(getApplicationContext());
//初始化相关的对象
values=new String[]{"数据标题1,数据标题2"};
listView=findViewById(R.id.list);
names=new String[]{"数据1,数据2"};
mlist=new ArrayList<>();
//首先的,如果是第一次打开程序的话,当没有数据在本地存储的时候
//先把数据存一遍,不然主页面会抛异常,甚至直接崩
if(su.get("0").equals("NO")){
//for循环,没什么东西
for(int i=0;i adapterView, View view, int i, long l) {
al(i);
}
});
}
public void re(){
//首先的,将list里面的数据全部清除,然后再重新写入
mlist.clear();
for(int i=0;i list;
public MyBaseAdapter(List liste){
list=liste;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
//如果这个视图不存在的时候,则会新建一个ViewHolder对象,然后将
//通过LayoutInflater将布局文件绑定过来
ViewHolder viewHolder;
if(view==null){
viewHolder=new ViewHolder();
view= LayoutInflater.from(getApplicationContext()).inflate(R.layout.item,null);
viewHolder.name=view.findViewById(R.id.name);
viewHolder.value=view.findViewById(R.id.value);
view.setTag(viewHolder);
}else {
//如果视图已经存在了,也就是说,findViewByID也就没有必要了
//就直接通过view.getTag的方法拿过来
viewHolder= (ViewHolder) view.getTag();
}
Data data =list.get(i);
viewHolder.value.setText(data.value);
viewHolder.name.setText(data.name);
return view;
}
class ViewHolder{
TextView name,value;
}
}
class Data{
String name,value;
public Data(String name, String value) {
this.name = name;
this.value = value;
}
}
public void al(final int num){
/**
* 弹窗:推荐builder,因为可以自己添加按钮,但是没有dissmiss方法,但是可以使用create方法返回一个AlertDialog
*/
AlertDialog.Builder builder=new AlertDialog.Builder(setActivity.this);
View view =LayoutInflater.from(getApplicationContext()).inflate(R.layout.dig,null);
final EditText editText =view.findViewById(R.id.editText);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//将点击的是哪一个item传入进来,进行数据的更新
values[num]=editText.getText().toString();
//然后再次刷新一下adapter
re();
}
});
builder.setView(view);
builder.show();
}
public void set(View view){
for(int i=0;i