首先参考这个链接:Learn SQLITE。
借助上面的教程创建两个名为Subjects & Teachers的表,表结构如下:
主题:ID 整数 PRIMARY KEY AUTOINCREAMENT、NAME 文本、UNITS 文本。
教师:ID 整数 PRIMARY KEY AUTOINCREAMENT、姓名文本、主题文本。
用于添加主题类。
将有两个编辑文本第一个将具有子名称,第二个将具有单元数。在按钮单击时将这两个值放在单独的字符串中,并将其存储在 Subjects 表中。现在您的主题表将包含如下记录:
Id Name Units
1 Subject-1 4
这样继续输入主题。
用于添加教师和作业
您将拥有一个编辑文本,其中将输入教师的姓名。一个选择按钮,单击该按钮即可显示我们的主题表中的主题列表。
在对话框中点击Ok,您可以获得选定的主题。
提交按钮单击,将教师数据保存在表教师中。仅存储主题逗号分隔的ID。之后,仅通过其 id 引用一个特定的。
现在教师表将包含如下数据:
Id Name Subjects
1 daniel 1,2
教师名单
显示我们的教师表中的列表。
编辑 2:将列表设置为 listView
参考此链接:How to set list in ListView+CheckBoxes
我在这里总结一下这个概念:
步骤:1
您需要创建一个 list_item.xml 布局,其中将包含一个 TextView 和一个仅水平放置的复选框:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="6dip" >
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:focusable="false"
android:focusableInTouchMode="false"
android:text="CheckBox" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/checkBox1"
android:layout_alignBottom="@+id/checkBox1"
android:layout_toRightOf="@+id/checkBox1"
android:text="TextView" />
</LinearLayout>
步骤:2
您需要创建一个适配器来处理您的列表,该列表将设置为 listView。
public class MyCustomAdapter extends ArrayAdapter<Subject> {
private ArrayList<Subject> subList;
public MyCustomAdapter(Context context, int textViewResourceId,
ArrayList<Subject> subList) {
super(context, textViewResourceId, subList);
this.subList = new ArrayList<Subject>();
this.subList.addAll(subList);
}
private class ViewHolder {
TextView name;
CheckBox chk_box;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
Log.v("ConvertView", String.valueOf(position));
if (convertView == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.name = (TextView) convertView.findViewById(R.id.name);
holder.chk_box = (CheckBox) convertView.findViewById(R.id.checkBox1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
Subject subject = subList.get(position);
holder.name.setText(subject.getSubName() + " - " + subject.getUnits());
return convertView;
}
}
步骤 - 3
在 MainActivty 中为你的 ListView 设置这个适配器:
创建另一个xmlactivity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ListView
android:id="@+id/mylist"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
MainActivty.java
public class MainActivity extends Activity {
ListView mylist;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mylist = (ListView)findViewById(R.id.mylist);
mylist.setAdapter(new MyCustomAdapter(MainActivty.this,subjectList,R.layout.list_item));
}
}