正在开发一个应用程序,采取学生考勤,我想得到的名单上勾选的名字“考勤”,当我点击一个“考勤”在相同的自定义列表视图。拜托,我该怎么做?
这是我的密码...自定义视图在此处输入代码
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_firstname"
android:text="Firstname"
android:textSize="11dp"
android:ellipsize="start"
android:lines="3"
android:textColor="#000"
android:textStyle="bold"
android:gravity="center"
android:paddingLeft="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lastname"
android:lines="3"
android:textSize="11dp"
android:textColor="#000"
android:textStyle="bold"
android:gravity="center"
android:paddingLeft="10dp"
android:id="@+id/tv_lastname" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_surname"
android:text="Surname"
android:lines="3"
android:textSize="11sp"
android:textColor="#000"
android:textStyle="bold"
android:gravity="center"
android:paddingRight="80dp"
android:paddingLeft="10dp" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="20dp"
android:id="@+id/checkBox"
android:checked="false"
android:focusable="false"
android:background="@color/white" />
The Listview
在此处输入代码
ListAdapter此处输入代码
公共类StudentListAdapter1扩展了BaseAdapter{private Context mContext;private List mStudentList;
//Constructor
public StudentListAdapter1(Context mContext, List<StudentList> mStudentList) {
this.mContext = mContext;
this.mStudentList = mStudentList;
}
@Override
public int getCount() {
return mStudentList.size();
}
@Override
public Object getItem(int position) {
return mStudentList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = View.inflate(mContext, R.layout.student_take, null);
TextView tvReg_no = (TextView) v.findViewById(R.id.tv_reg_no);
TextView tvFirstname = (TextView) v.findViewById(R.id.tv_firstname);
TextView tvLastname = (TextView) v.findViewById(R.id.tv_lastname);
TextView tvSurname = (TextView) v.findViewById(R.id.tv_surname);
//Set text for TextView
tvReg_no.setText(mStudentList.get(position).getReg_no());
tvFirstname.setText(mStudentList.get(position).getFirstname());
tvLastname.setText(mStudentList.get(position).getLasttname());
tvSurname.setText(mStudentList.get(position).getSurname());
//Save product id to tag
v.setTag(mStudentList.get(position).getId());
return v;
}
}
考勤activity此处输入代码
protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.Layout.Activity_Student_Take100);
lvStudentlist= (ListView) findViewById(R.id.listview_studentlist);
mStudentList = new ArrayList<>();
//Add sample data for list
//We can get data from DB, webservice here
mStudentList.add(new StudentList(1, "U11EE1001", "Bargo","S.","Mayafi"));
mStudentList.add(new StudentList(2, "U11EE1002", "Barnsbas","Snake.","Maciji"));
mStudentList.add(new StudentList(3, "U11EE1004", "Adamu","Tanko.","Sadau"));
mStudentList.add(new StudentList(4, "U11EE1005", "Munzali","","Cire Tallafi"));
//Init adapter
adapter = new StudentListAdapter1(getApplicationContext(), mStudentList);
lvStudentlist.setAdapter(adapter);
checkBox = (CheckBox) findViewById(R.id.checkBox);
lvStudentlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//Do something
SparseBooleanArray checked = lvStudentlist.getCheckedItemPositions();
ArrayList<String> selectedItems = new ArrayList<>();
for (int i = 0; i < checked.size(); i++) {
// Item position in adapter
position = checked.keyAt(i);
// Add names if it is checked i.e.) == TRUE!
if (checked.valueAt(i))
selectedItems.add((String) adapter.getItem(position));
}
String[] outputStrArr = new String[selectedItems.size()];
for (int i = 0; i < selectedItems.size(); i++) {
outputStrArr[i] = selectedItems.get(i);
}
Intent intent = new Intent(getApplicationContext(),
ViewAttendanceActivity.class);
// Create a bundle object
Bundle b = new Bundle();
b.putStringArray("selectedItems", outputStrArr);
// Add the bundle to the intent.
intent.putExtras(b);
// start the ResultActivity
startActivity(intent);
}
});
}
}
查看考勤activity此处输入代码
protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(r.layout.activity_view_accountence);
Bundle b = getIntent().getExtras();
String[] resultArr = b.getStringArray("selectedItems");
lvStudentlist= (ListView) findViewById(R.id.listview_studentlist);
adapter = new StudentListAdapter(getApplicationContext(), mStudentList);
lvStudentlist.setAdapter(adapter);
}
}
首先,我认为您应该重用listview中的项目
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v;
if (convertView != null) {
v = convertView;
} else {
v = View.inflate(mContext, R.layout.student_take, null);
}
.......
现在回答您的问题,我认为您需要在LVStudentList.SetonItemClickListener
方法中将所选项添加到数组中,然后将其作为意向性额外发送到下一个activity。您可以将String[]作为意向性额外发送,因此不需要使用bundle。
我试图在片段中创建自定义listView,我搜索了其他问题,但找不到任何东西。我的列表适配器是这样的 我的片段类是这样的: } 问题是这部分:CustomList adapter=新CustomList(tab1.this,string,imageId);构造函数(public CustomList(活动上下文,字符串[]web,整数[]imageId))只接受活动 我怎样才能解决这个问题?
问题内容: 我浏览了教程并进行了搜索,但仍然不明白该怎么做, 当扩展在我的android应用程序中创建自定义listView 时,此方法有效。因此,我无法完全按照需要编辑“自定义”列表视图。 我需要知道何时调用此方法以及参数的含义。 如果有人可以解释以下方法很好。谢谢 问题答案: getView() :如规范中所述,getView方法将数据显示在指定位置。因此,当您设置适配器并滚动时,将调用lis
问题内容: 我有一个ListView,其行中应具有以下布局: 应该是静态的,但每隔几秒钟就会更改一次。 我通过填充,将其传递给并在每次数据更改时进行设置来实现它: 我的问题是我不知道如何以上述格式显示数据。 提前致谢。 问题答案: 将此添加到你的布局文件夹 使你的主要xml布局如下 这是你的适配器 你的Java活动
问题内容: 所以我有一个自定义ListView对象。列表项具有两个彼此叠放的textview,以及一个水平进度条,在我实际执行某项操作之前,我一直希望保持水平状态。最右边是一个复选框,仅在用户需要将更新下载到他们的数据库时才显示。通过将可见性设置为Visibility.GONE禁用复选框时,我可以单击列表项。当该复选框可见时,我无法单击列表中除复选框以外的任何内容。我已经进行了一些搜索,但没有找到
问题内容: 我尝试使用自定义ListCell在ListView中查看自定义对象。为了说明这个问题,我选择了一个例子。同样出于演示目的,我在渲染时直接禁用了ListCell。这些项目是由线程模拟的外部过程添加的。一切看起来都很不错,直到我为禁用的ListCell应用CSS着色为止。现在看来,有些虚幻项与创建它们的ListCell一起被禁用。 我该如何解决? App.java app.css 问题答案
CreateView我调用适配器:@override public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){//load View this.myview=inflater.inflate(r.layout.fragment_list,container,fal