在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内跟踪。。。你还在找什么?