在android中查看多次点击
在我的应用程序中,我有一个文本视图,当用户第一次点击它时,我必须按降序排列数据,当用户再次点击同一个文本视图时,我必须按升序排列数据。有什么方法可以做到这一点吗 我的代码:在android中查看多次点击,android,textview,Android,Textview,在我的应用程序中,我有一个文本视图,当用户第一次点击它时,我必须按降序排列数据,当用户再次点击同一个文本视图时,我必须按升序排列数据。有什么方法可以做到这一点吗 我的代码: public void onClick(View v) { // TODO Auto-generated method stub boolean flag = false; db.open(); Cursor c; if(flag==false) { c = d
public void onClick(View v) {
// TODO Auto-generated method stub
boolean flag = false;
db.open();
Cursor c;
if(flag==false)
{
c = db.getIncomeTitleDescitem(intent.getStringExtra("grpsdb"));
startManagingCursor(c);
flag=true;
}
else
{
System.out.println("inside else");
c = db.getIncomeTitleAscitem(intent.getStringExtra("grpsdb"));
startManagingCursor(c);
flag=false;
}
ListView lv=(ListView)findViewById(R.id.listView1);
String[] fromdes = new String[] {db.KEY_DATE,db.KEY_DESC,db.KEY_INCOME,db.KEY_TOTAL};
int[] todes = new int[] {R.id.text1 ,R.id.text3,R.id.text5,R.id.text7};
SimpleCursorAdapter notes = new SimpleCursorAdapter(IncomeDetails.this, R.layout.columnview, c, fromdes, todes);
lv.setAdapter(notes);
db.close();
}
布尔sortAscend=false 在文本视图的
onclicklistener()
中,检查sortAscend
并对其排序并设置sortAscend=!sortAscend
这样,它将交替地在asc/desc中对其进行排序 在文本视图的
onclicklistener()
中,检查sortAscend
并对其排序并设置sortAscend=!sortAscend
这样,它将交替地在asc/desc中对其进行排序您可以使用setTag()
和getTag()
来维护状态
默认情况下,将TextView设置为tv.setTag(“降序”)
然后在onClick()
中使用getTag()
并执行您的工作
样本
tv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View paramView) {
String order = (String) paramView.getTag();
if(order.equalsIgnoreCase("descending")){
// perform descending ordering
tv.setTag("ascending");
}
else if (order.equalsIgnoreCase("ascending")) {
// perform ascending ordering
tv.setTag("descending");
}
}
});
您可以使用setTag()
和getTag()
来维护状态
默认情况下,将TextView设置为tv.setTag(“降序”)
然后在onClick()
中使用getTag()
并执行您的工作
样本
tv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View paramView) {
String order = (String) paramView.getTag();
if(order.equalsIgnoreCase("descending")){
// perform descending ordering
tv.setTag("ascending");
}
else if (order.equalsIgnoreCase("ascending")) {
// perform ascending ordering
tv.setTag("descending");
}
}
});
你有按升序和降序排列的逻辑吗 如果是 假设函数
arrangeA()
和arrangeD()
分别按升序和降序进行排列
String lastSet="none";
TextView tv= (TextView) findViewById(R.id.tv);
tv.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(lastSet.equals("none")||lastSet.equals("asc")) {
arrangeD();
lastSet="desc";
}
else {
arrngeA();
lastSet="asc";
}
}
});
你有按升序和降序排列的逻辑吗 如果是 假设函数
arrangeA()
和arrangeD()
分别按升序和降序进行排列
String lastSet="none";
TextView tv= (TextView) findViewById(R.id.tv);
tv.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(lastSet.equals("none")||lastSet.equals("asc")) {
arrangeD();
lastSet="desc";
}
else {
arrngeA();
lastSet="asc";
}
}
});
是的,您可以根据单击“更新标志”轻松使用标志进行跟踪。。您可以保留为boolean或int的标志。供你参考
boolean flag = false; // false - first click, true - second click
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (flag == false) {
flag = true;
// do descending
} else {
flag = false;
// do ascending
}
}
});
是的,您可以根据单击“更新标志”轻松使用标志进行跟踪。。您可以保留为boolean或int的标志。供你参考
boolean flag = false; // false - first click, true - second click
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (flag == false) {
flag = true;
// do descending
} else {
flag = false;
// do ascending
}
}
});
只需放置
boolean flag = false;
在函数调用之上
public void onClick(View v) {
这将完成您的任务只需放置
boolean flag = false;
在函数调用之上
public void onClick(View v) {
这将完成您的任务检查此项我认为此答案适合您的问题,您指的是文本视图的文本???ohhh为什么要在onClick中创建布尔标志,它将继续创建,只创建一次..检查这个我认为这个答案适合你的问题,因为数据你指的是文本视图的文本???ohhh为什么你在onClick内创建布尔标志,它将继续创建,只创建一次..我检查了你的代码,你在onClick内创建布尔标志犯了一个大错误。您应该创建一次,需要在onClick内跟踪。。。您还需要什么?我检查了您的代码,在onClick中创建布尔标志是一个很大的错误。您应该创建一次,需要在onClick内跟踪。。。你还在找什么?