我有一个多栏的列表视图。。。要更改选定或单击的行项目的背景色。参考了关于stackoverflow的各种文章,但它们似乎没有帮助。。。我在McClick做的是。挫折背景色。当应用程序重新启动时,无法使用选择器,因为我希望记住我已更改颜色的行的颜色更改。。。我把标志值放在数据库中,可以在getView中设置颜色,但是第一次怎么做呢?这是代码。。。。。
public class AdminMultiColumn extends Activity
{
private ArrayList<HashMap<String,String>> list;
ArrayList<String> al;
AlertDialog.Builder alertDialogBuilder;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.admin_checkoutlist);
lview = (ListView)findViewById(R.id.admin_list);
populateList();
Admin_checkoutlist adapter = new Admin_checkoutlist(this,list);
lview.setAdapter(adapter);
}
private void populateList() {
list = new ArrayList<HashMap<String,String>>();
al = new ArrayList<String>();
testday = c.get(Calendar.DAY_OF_MONTH);
testmonth = c.get(Calendar.MONTH)+1;
testyear = c.get(Calendar.YEAR);
dateget = testday+"-"+testmonth+"-"+testyear;
mdb.open();
va.open();
Cursor c1 = va.getNameTimeinTimeout(dateget);
DatabaseUtils.dumpCursor(c1);
if(c1.moveToFirst())
{
do{
idfromdb = c1.getString(0);
al.add(idfromdb);
namefromdb = c1.getString(1);
al.add(namefromdb);
timefromdb = c1.getString(2);
al.add(timefromdb);
timeoutfromdb = c1.getString(3);
al.add(timeoutfromdb);
}while(c1.moveToNext());
}
c1.close();
va.close();
mdb.close();
Log.d("pavan","data retrived "+namefromdb+" "+timeoutfromdb+" "+timefromdb+" "+idfromdb);
for(int i = 0;i<al.size();i=i+4)
{
temp = new HashMap<String,String>();
temp.put(FIRST_COLUMN, al.get(i));
temp.put(SECOND_COLUMN, al.get(i+1));
temp.put(THIRD_COLUMN, al.get(i+2));
temp.put(FOURTH_COLUMN, al.get(i+3));
Log.d("pavan","test here for admin");
list.add(temp);
}
}
//adapter class goes here////////////
public class Admin_checkoutlist extends BaseAdapter implements OnItemClickListener
{
public ArrayList<HashMap<String,String>> list;
Activity activity;
public Admin_checkoutlist(Activity activity, ArrayList<HashMap<String,String>> list)
{
super();
this.activity = activity;
this.list = list;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int pos) {
// TODO Auto-generated method stub
return list.get(pos);
}
@Override
public long getItemId(int pos) {
// TODO Auto-generated method stub
return 0;
}
public class ViewHolder
{
TextView txtFirst;
TextView txtSecond;
TextView txtThird;
TextView txtFOURTH;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = activity.getLayoutInflater();
if (convertView == null)
{
convertView = inflater.inflate(R.layout.temp, null);
holder = new ViewHolder();
holder.txtFirst = (TextView)convertView.findViewById(R.id.uid);
holder.txtSecond = (TextView)convertView.findViewById(R.id.nametext);
holder.txtThird = (TextView)convertView.findViewById(R.id.checkintext);
holder.txtFOURTH = (TextView)convertView.findViewById(R.id.checkouttext);
convertView.setTag(holder);
lview.setOnItemClickListener(this);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
HashMap<String, String> map = list.get(position);
holder.txtFirst.setText(map.get(FIRST_COLUMN));
holder.txtSecond.setText(map.get(SECOND_COLUMN));
holder.txtThird.setText(map.get(THIRD_COLUMN));
holder.txtFOURTH.setText(map.get(FOURTH_COLUMN));
return convertView;
}//getview ends here.
@Override
public void onItemClick(final AdapterView<?> parent, final View view, int pos,
long id) {
// TODO Auto-generated method stub
Object listItem = parent.getFirstVisiblePosition()+pos+1;
//lview.getChildAt(pos).setBackgroundColor(R.color.blue);
view.setBackgroundColor(pos);
idtosend = listItem.toString();
Log.d("pavan","id is"+idtosend);
/////alert displaing block starts here////////////////////////////////
alertDialogBuilder = new AlertDialog.Builder(AdminMultiColumn.this);
alertDialogBuilder.setTitle("Alert");
alertDialogBuilder
.setMessage("Check out now")
.setCancelable(false)
.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, close
// current activity
Toast.makeText(getApplicationContext(), "Checkout successfull", Toast.LENGTH_LONG).show();
testhour = c.get(Calendar.HOUR_OF_DAY);
testmin = c.get(Calendar.MINUTE);
testsec = c.get(Calendar.SECOND);
timings = testhour+":"+testmin+":"+testsec;
mdb.open();
va.open();
va.upDate(idtosend,timings);
Toast.makeText(getApplicationContext(), "update the checkout options "+timings, Toast.LENGTH_SHORT).show();
va.close();
mdb.close();
/*Intent go = new Intent(AdminMultiColumn.this,MultiColumn.class);
startActivity(go);*/
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
///////alert displaing block ends here//////////////////////////////////
}
}
}
我现在所做的是在getView方法中,将转换视图并将背景资源设置为颜色,这也不起作用...下面是代码...
if(holder.txtFOURTH!=null)
{
convertView.setBackgroundColor(R.drawable.image_border);
}
else
{
Toast.makeText(getApplicationContext(), "test", Toast.LENGTH_SHORT).show();
}
有两点-
>
而不是view.set背景颜色(pos);
起诉
LinearLayout row = (LinearLayout)view.findViewById(R.id.list_row);
if(null!=row){
//<listAdapter>.notifyDataSetChanged();
row.setBackgroundResource(R.drawable.);
}
但是会有问题,因为当你点击第二行时,它也被选中了,最好调用list.notifydatasetchaged
有几个更多的选项查看它们,可能会满足您的要求
>
android-seleting-state-listview示例
android-how-do-i-highlight-a-row-in-listview
在android中突出显示列表视图中的选定项目
我有一个自定义列表视图的应用程序,它有一个textview和一个imageview。当我点击图像视图时,背景颜色应该改变。我试图这样做,但是得到了。。。这是我的密码 CustomListViewAdapter。JAVA 任何建议都将不胜感激。谢谢
问题内容: 我有一个3列的JTable。我已经为所有3列设置了这样的代码(也许不是很有效?)。 在一个随机的背景颜色为每一行返回一个组件。 程序运行时如何将背景更改为其他随机颜色? 问题答案: 一种方法是存储模型中每一行的当前颜色。这是一个固定在3列3行的简单模型: 注意通话; 这将导致仅更新表的该行。 渲染器可以从表中获取模型: 更改行的颜色很简单:
问题内容: 问题 我正在尝试创建带有可选项目的。我希望能够单击中的一个项目,并使该项目在列表中更改颜色,然后继续对行中的数据进行其他处理。 我正在使用。 如何做到这一点,以便当我点击一行时,它会变成不同的颜色,然后当我点击另一行时,新的行被选中并更改为新的颜色,而旧的行又变回普通颜色。 ? 码 到目前为止,这是我的代码。该班是有所有的数据,我想显示在我的组织和照顾。该方法返回,其中包含我所有数据的
问题内容: 有什么方法可以更改RibbonApplicationMenuEntryPrimary(Flamingo)的背景颜色吗? 我看了看它的javadoc,但找不到方法。 问题答案: 1)请注意,我已检查API;从开始,有很多导入和扩展,它们来自许多不同的方法(这里是我尝试覆盖MetalButtonUI的尝试)。 2)也许更改内置颜色主题会很容易,但是我不建议这样做。 3)我不是Flaming
嗨,我正在为我的Java课程创建一个战舰程序。现在,我正在尝试开发一个射击类。为了开火,我试图将背景颜色从蓝色(这意味着它只是一个空单元格)改为黄色(以表明我已经在该单元格中开火,但那里什么也没有)。 这是Fire类的代码。如果您认为有必要,我可以包含它继承的其他类。我遇到的主要问题是尝试让我的“for”循环通过,并根据我想要的迭代次数将背景从蓝色更改为黄色。100是用于测试目的的任意数字。 谢谢
问题内容: 我有这种变化的背景颜色的例子的创立负荷使用或者与 但是,我想在一个复选框上创建一个事件,将其选中时将背景色更改为绿色,而取消选择时将其更改为默认值。 我无法使用上述方法进行这项工作。 有任何想法吗? PS:由于某些原因,我可以通过使用而不是背景来更改前景色 问题答案: LAF可以随意忽略某些(仅可见的?不知道的)JComponent属性的自定义设置,如以下文档所述: 外观和感觉取决于该