求大神指点我怎么加checkbox

xingjianyuan 2014-09-03 04:25:33
Mainactivity
]package com.example.search;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.view.View;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import android.widget.EditText;
import java.util.ArrayList;
import java.io.File;

public class MainActivity extends Activity {

static private ArrayList<String> search_result = new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ListView list = (ListView) findViewById(R.id.result_list);

list.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,search_result));
Button searchBn = (Button) findViewById(R.id.search_bn);

searchBn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (search_result != null) {
search_result.clear();
}

EditText et = (EditText) findViewById(R.id.file_name_edit);
MainActivity.this.searchFile(et.getText().toString().trim(), "/sdcard");
((ArrayAdapter)((ListView)MainActivity.this.findViewById(R.id.result_list)).getAdapter()).notifyDataSetChanged();
}
});
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

private void searchFile(String filename, String path) {
File[] files = null;
try {
files = new File(path).listFiles();
} catch (Exception e) {
files = null;
Toast.makeText(this, getString(R.string.open_file_err), Toast.LENGTH_SHORT).show();
return;
}

for (File file : files) {
if (file.isDirectory() && file.listFiles() != null) {
searchFile(filename, file.getPath());
} else if (file.isFile()) {
if (filename == null || filename.isEmpty()) {
search_result.add(file.getPath());
} else {
String name = file.getName();
if (name.indexOf(filename) != -1) {
search_result.add(file.getPath());
}
}
}
}
}

} [/code
main.xml
[code=java]<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/input_file_name_cn"
android:id="@+id/label" />

<EditText
android:id="@+id/file_name_edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/label"/>

<Button android:id="@+id/search_bn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="search_bn"
android:layout_below="@id/file_name_edit"/>

<ListView
android:id="@+id/result_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
android:layout_below="@id/search_bn"/>

</RelativeLayout>


item.xml
<?xml version="1.0" encoding="utf-8"?>  
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/result_list"
android:paddingBottom="5dip"
android:paddingLeft="12dip"
android:paddingRight="12dip">
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/result_list"
android:textSize="20dip"
android:paddingTop="15px"
android:layout_marginLeft="70px">
</TextView>
<CheckBox android:id="@+id/cb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:focusable="false"></CheckBox>
</RelativeLayout>

只要加入checkbox,求指点,最好能改我的代码贴出来让我学习下,谢谢
...全文
180 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingjianyuan 2014-09-04
  • 打赏
  • 举报
回复
大神在哪里,求助啊
lionfresh 2014-09-04
  • 打赏
  • 举报
回复
引用 8 楼 xingjianyuan 的回复:
[quote=引用 7 楼 sagittarius1988 的回复:] [quote=引用 6 楼 xingjianyuan 的回复:] [quote=引用 5 楼 sagittarius1988 的回复:] [quote=引用 4 楼 xingjianyuan 的回复:] [quote=引用 2 楼 sagittarius1988 的回复:] item.xml里把相对布局改成线性布局吧
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content" 
    android:paddingBottom="5dip" 
    android:paddingLeft="12dip"  
    android:paddingRight="12dip">  
    <TextView android:layout_height="wrap_content"  
        android:layout_width="wrap_content" 
        android:id="@+id/result_list"  
        android:textSize="20dip" 
        android:paddingTop="15px"  
        android:layout_marginLeft="70px">  
    </TextView>  
    <CheckBox android:id="@+id/cb" 
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true"  
        android:focusable="false"></CheckBox>  
</LinearLayout> 
大神 该怎么往主activity里面加啊[/quote] 你先查查ListView的用法吧[/quote]额,我也是刚接触,大神能抽点时间帮我弄下么,这是同学问我的,他也是急需,万分感谢了[/quote] 看MyListView4 http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html 自己改下就能用了[/quote]大神能帮忙加下吗,急求啊,适配器找到了就是还是不大明白该怎么加,
package com.example.search;

import java.util.ArrayList;
import java.util.HashMap;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.TextView;

public  class listcheck extends BaseAdapter {
	// 填充数据的list
	private ArrayList<String> list;
	// 用来控制CheckBox的选中状况
	private static HashMap<Integer, Boolean> isSelected;
	// 上下文
	private Context context;
	// 用来导入布局
	private LayoutInflater inflater = null;

	// 构造器
	public listcheck(ArrayList<String> list, Context context) {
	this.context = context;
	this.list = list;
	inflater = LayoutInflater.from(context);
	isSelected = new HashMap<Integer, Boolean>();
	// 初始化数据
	initDate();
	}

	// 初始化isSelected的数据
	private void initDate() {
	for (int i = 0; i < list.size(); i++) {
	getIsSelected().put(i, false);
	}
	}

	@Override
	public int getCount() {
	return list.size();
	}

	public Object getItem(int position) {
	return list.get(position);
	}

	@Override
	public long getItemId(int position) {
	return position;
	}

	public View getView1(int position, View convertView, ViewGroup parent) {
	ViewHolder holder = null;
	if (convertView == null) {
	// 获得ViewHolder对象
	holder = new ViewHolder();
	// 导入布局并赋值给convertview
	convertView = inflater.inflate(R.layout.listview_item, null);
	holder.tv = (TextView) convertView.findViewById(R.id.item_tv);
	holder.cb = (CheckBox) convertView.findViewById(R.id.item_cb);
	// 为view设置标签
	convertView.setTag(holder);
	} else {
	// 取出holder
	holder = (ViewHolder) convertView.getTag();
	}
	// 设置list中TextView的显示
	holder.tv.setText(list.get(position));
	// 根据isSelected来设置checkbox的选中状况
	holder.cb.setChecked(getIsSelected().get(position));
	return convertView;
	}

	public class ViewHolder{
	TextView tv;
	CheckBox cb;
	}
	public static HashMap<Integer, Boolean> getIsSelected() {
	return isSelected;
	}

	public static void setIsSelected(HashMap<Integer, Boolean> isSelected) {
	listcheck.isSelected = isSelected;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		return null;
	}
	}
[/quote] getView1方法中convertView = inflater.inflate(R.layout.listview_item, null);这句的listview_item就是你要添加的item.xml,你修改成你的就是。
xingjianyuan 2014-09-04
  • 打赏
  • 举报
回复
引用 7 楼 sagittarius1988 的回复:
[quote=引用 6 楼 xingjianyuan 的回复:] [quote=引用 5 楼 sagittarius1988 的回复:] [quote=引用 4 楼 xingjianyuan 的回复:] [quote=引用 2 楼 sagittarius1988 的回复:] item.xml里把相对布局改成线性布局吧
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content" 
    android:paddingBottom="5dip" 
    android:paddingLeft="12dip"  
    android:paddingRight="12dip">  
    <TextView android:layout_height="wrap_content"  
        android:layout_width="wrap_content" 
        android:id="@+id/result_list"  
        android:textSize="20dip" 
        android:paddingTop="15px"  
        android:layout_marginLeft="70px">  
    </TextView>  
    <CheckBox android:id="@+id/cb" 
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true"  
        android:focusable="false"></CheckBox>  
</LinearLayout> 
大神 该怎么往主activity里面加啊[/quote] 你先查查ListView的用法吧[/quote]额,我也是刚接触,大神能抽点时间帮我弄下么,这是同学问我的,他也是急需,万分感谢了[/quote] 看MyListView4 http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html 自己改下就能用了[/quote]大神能帮忙加下吗,急求啊,适配器找到了就是还是不大明白该怎么加,
package com.example.search;

import java.util.ArrayList;
import java.util.HashMap;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.TextView;

public  class listcheck extends BaseAdapter {
	// 填充数据的list
	private ArrayList<String> list;
	// 用来控制CheckBox的选中状况
	private static HashMap<Integer, Boolean> isSelected;
	// 上下文
	private Context context;
	// 用来导入布局
	private LayoutInflater inflater = null;

	// 构造器
	public listcheck(ArrayList<String> list, Context context) {
	this.context = context;
	this.list = list;
	inflater = LayoutInflater.from(context);
	isSelected = new HashMap<Integer, Boolean>();
	// 初始化数据
	initDate();
	}

	// 初始化isSelected的数据
	private void initDate() {
	for (int i = 0; i < list.size(); i++) {
	getIsSelected().put(i, false);
	}
	}

	@Override
	public int getCount() {
	return list.size();
	}

	public Object getItem(int position) {
	return list.get(position);
	}

	@Override
	public long getItemId(int position) {
	return position;
	}

	public View getView1(int position, View convertView, ViewGroup parent) {
	ViewHolder holder = null;
	if (convertView == null) {
	// 获得ViewHolder对象
	holder = new ViewHolder();
	// 导入布局并赋值给convertview
	convertView = inflater.inflate(R.layout.listview_item, null);
	holder.tv = (TextView) convertView.findViewById(R.id.item_tv);
	holder.cb = (CheckBox) convertView.findViewById(R.id.item_cb);
	// 为view设置标签
	convertView.setTag(holder);
	} else {
	// 取出holder
	holder = (ViewHolder) convertView.getTag();
	}
	// 设置list中TextView的显示
	holder.tv.setText(list.get(position));
	// 根据isSelected来设置checkbox的选中状况
	holder.cb.setChecked(getIsSelected().get(position));
	return convertView;
	}

	public class ViewHolder{
	TextView tv;
	CheckBox cb;
	}
	public static HashMap<Integer, Boolean> getIsSelected() {
	return isSelected;
	}

	public static void setIsSelected(HashMap<Integer, Boolean> isSelected) {
	listcheck.isSelected = isSelected;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		return null;
	}
	}
sagittarius1988 2014-09-03
  • 打赏
  • 举报
回复
引用 6 楼 xingjianyuan 的回复:
[quote=引用 5 楼 sagittarius1988 的回复:] [quote=引用 4 楼 xingjianyuan 的回复:] [quote=引用 2 楼 sagittarius1988 的回复:] item.xml里把相对布局改成线性布局吧
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content" 
    android:paddingBottom="5dip" 
    android:paddingLeft="12dip"  
    android:paddingRight="12dip">  
    <TextView android:layout_height="wrap_content"  
        android:layout_width="wrap_content" 
        android:id="@+id/result_list"  
        android:textSize="20dip" 
        android:paddingTop="15px"  
        android:layout_marginLeft="70px">  
    </TextView>  
    <CheckBox android:id="@+id/cb" 
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true"  
        android:focusable="false"></CheckBox>  
</LinearLayout> 
大神 该怎么往主activity里面加啊[/quote] 你先查查ListView的用法吧[/quote]额,我也是刚接触,大神能抽点时间帮我弄下么,这是同学问我的,他也是急需,万分感谢了[/quote] 看MyListView4 http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html 自己改下就能用了
xingjianyuan 2014-09-03
  • 打赏
  • 举报
回复
引用 5 楼 sagittarius1988 的回复:
[quote=引用 4 楼 xingjianyuan 的回复:] [quote=引用 2 楼 sagittarius1988 的回复:] item.xml里把相对布局改成线性布局吧
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content" 
    android:paddingBottom="5dip" 
    android:paddingLeft="12dip"  
    android:paddingRight="12dip">  
    <TextView android:layout_height="wrap_content"  
        android:layout_width="wrap_content" 
        android:id="@+id/result_list"  
        android:textSize="20dip" 
        android:paddingTop="15px"  
        android:layout_marginLeft="70px">  
    </TextView>  
    <CheckBox android:id="@+id/cb" 
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true"  
        android:focusable="false"></CheckBox>  
</LinearLayout> 
大神 该怎么往主activity里面加啊[/quote] 你先查查ListView的用法吧[/quote]额,我也是刚接触,大神能抽点时间帮我弄下么,这是同学问我的,他也是急需,万分感谢了
sagittarius1988 2014-09-03
  • 打赏
  • 举报
回复
引用 4 楼 xingjianyuan 的回复:
[quote=引用 2 楼 sagittarius1988 的回复:] item.xml里把相对布局改成线性布局吧
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content" 
    android:paddingBottom="5dip" 
    android:paddingLeft="12dip"  
    android:paddingRight="12dip">  
    <TextView android:layout_height="wrap_content"  
        android:layout_width="wrap_content" 
        android:id="@+id/result_list"  
        android:textSize="20dip" 
        android:paddingTop="15px"  
        android:layout_marginLeft="70px">  
    </TextView>  
    <CheckBox android:id="@+id/cb" 
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true"  
        android:focusable="false"></CheckBox>  
</LinearLayout> 
大神 该怎么往主activity里面加啊[/quote] 你先查查ListView的用法吧
xingjianyuan 2014-09-03
  • 打赏
  • 举报
回复
引用 2 楼 sagittarius1988 的回复:
item.xml里把相对布局改成线性布局吧
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content" 
    android:paddingBottom="5dip" 
    android:paddingLeft="12dip"  
    android:paddingRight="12dip">  
    <TextView android:layout_height="wrap_content"  
        android:layout_width="wrap_content" 
        android:id="@+id/result_list"  
        android:textSize="20dip" 
        android:paddingTop="15px"  
        android:layout_marginLeft="70px">  
    </TextView>  
    <CheckBox android:id="@+id/cb" 
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true"  
        android:focusable="false"></CheckBox>  
</LinearLayout> 
大神 该怎么往主activity里面加啊
ajdfngah 2014-09-03
  • 打赏
  • 举报
回复
我要积分啊!没有分下载不了。
sagittarius1988 2014-09-03
  • 打赏
  • 举报
回复
item.xml里把相对布局改成线性布局吧
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content" 
    android:paddingBottom="5dip" 
    android:paddingLeft="12dip"  
    android:paddingRight="12dip">  
    <TextView android:layout_height="wrap_content"  
        android:layout_width="wrap_content" 
        android:id="@+id/result_list"  
        android:textSize="20dip" 
        android:paddingTop="15px"  
        android:layout_marginLeft="70px">  
    </TextView>  
    <CheckBox android:id="@+id/cb" 
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true"  
        android:focusable="false"></CheckBox>  
</LinearLayout> 
xingjianyuan 2014-09-03
  • 打赏
  • 举报
回复
或者哪位大神给我发一个android搜索文件,并在搜索结果后面加checkbox的软件,万分感激

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧