如果列值相同,我希望更改列表视图行的后台,后面的列表视图将会更改,这是我的代码。
public class FillList extends AsyncTask<String, String, String> {
String z = "";
List<Map<String, String>> prolist = new ArrayList<Map<String, String>>();
@Override
protected void onPreExecute() {
}
@Override
protected void onPostExecute(String r) {
Toast.makeText(getActivity(), r, Toast.LENGTH_SHORT).show();
String[] from = {"C", "D", "E"};
int[] views = {R.id.accname, R.id.openingbalance, R.id.closingblanace};
final SimpleAdapter ADA = new SimpleAdapter(getActivity(),
prolist, R.layout.reportlayout, from,
views);
lstpro.setAdapter(ADA);
}
@Override
protected String doInBackground(String... params) {
try {
Connection con = connectionClass.CONN();
if (con == null) {
z = "Error in connection with SQL server";
} else {
final String stringlevel = getArguments().getString("level");
String query = "select * from GLSCOADetail where AccLevelNo<='"+ stringlevel +"'";
PreparedStatement ps = con.prepareStatement(query);
ResultSet rs = ps.executeQuery();
ArrayList<String> data1 = new ArrayList<String>();
while (rs.next()) {
Map<String, String> datanum = new HashMap<String, String>();
datanum.put("C", rs.getString("AccName"));
datanum.put("D", rs.getString("OpeningBalance"));
datanum.put("E", rs.getString("ClosingBalance"));
prolist.add(datanum);
}
z = "Success";
}
} catch (Exception ex) {
z = ex.getMessage();
}
return z;
}
}
如果我的数据库字段与列表视图匹配,我想更改数据库字段上的列表视图背景,那么行的颜色会改变,请帮助我。
答案 0 :(得分:0)
主要(活动)
public class Main extends Activity
{
private CustomAdapter adapter;
public ListView mListView = null;
public ArrayList<ListModel> CustomListViewValuesArr = new ArrayList<ListModel>();
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.listview_layout);
mListView = (ListView) findViewById(R.id.list);
setListData();
adapter = new CustomAdapter(this, CustomListViewValuesArr);
mListView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
/****** Function to set data in ArrayList *************/
public void setListData()
{
CustomListViewValuesArr.add(new ListModel("No1"));
CustomListViewValuesArr.add(new ListModel("No2"));//same
CustomListViewValuesArr.add(new ListModel("No3"));
CustomListViewValuesArr.add(new ListModel("No4"));
CustomListViewValuesArr.add(new ListModel("No2"));//same
}
}
listview_layout.xml(Activity xml)
<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" >
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
CustomAdapter(适配器)
public class CustomAdapter extends BaseAdapter
{
/*********** Declare Used Variables *********/
private Activity mActivity;
private ArrayList<ListModel> mList;
private static LayoutInflater mInflater = null;
private ListModel tempValues = null;
private int i=0;
/************* CustomAdapter Constructor *****************/
public CustomAdapter(Activity a, ArrayList d) {
/********** Take passed values **********/
mActivity = a;
mList = d;
/*********** Layout inflator to call external xml layout () ***********/
mInflater = ( LayoutInflater ) mActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
/******** What is the size of Passed Arraylist Size ************/
public int getCount() {
if(mList.size()<=0)
return 1;
return mList.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
/********* Create a holder Class to contain inflated xml file elements *********/
public static class ViewHolder
{
public TextView text;
}
/****** Depends upon mList size called for each row , Create each ListView row *****/
public View getView(int position, View convertView, ViewGroup parent)
{
View vi = convertView;
ViewHolder holder;
if(convertView==null){
/****** Inflate tabitem.xml file for each row ( Defined below ) *******/
vi = mInflater.inflate(R.layout.tabitem, null);
/****** View Holder Object to contain tabitem.xml file elements ******/
holder = new ViewHolder();
holder.text = (TextView) vi.findViewById(R.id.textView);
/************ Set holder with LayoutInflater ************/
vi.setTag( holder );
}
else
holder=(ViewHolder)vi.getTag();
if(mList.size() <= 0)
{
holder.text.setText("No Data");
}
else
{
tempValues = null;
tempValues = ( ListModel ) mList.get( position );
holder.text.setText( tempValues.getName() );
}
if(isDuplicate(tempValues.getName()))// this Method to check duplicate.
{
// Set a background color for ListView regular row/item
vi.setBackgroundColor(Color.parseColor("#FFB6B546"));
}
else
{
// Set the background color for alternate row/item
vi.setBackgroundColor(Color.parseColor("#FFCCCB4C"));
}
return vi;
}
private boolean isDuplicate(String item)
{
int count = 0;
for (int i = 0; i < mList.size(); i++)
{
ListModel listModel = mList.get(i);
if(item.equals(listModel.getName()))
count++;
}
if(count > 1)
return true;
else
return false;
}
}
ListModel(模型类)
public class ListModel {
private String name ="";
/*********** Set Methods ******************/
public ListModel(String name)
{
this.name = name;
}
public void setName(String CompanyName)
{
this.name = CompanyName;
}
/*********** Get Methods ****************/
public String getName()
{
return this.name;
}
}
tabitem(ListView Adapter xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:id="@+id/textView" />
</LinearLayout>