如何使用OnClickListener检查当前选择哪个TextView(三个)

时间:2014-07-18 03:59:59

标签: java android xml textview onclicklistener

目前,我有三个文本视图(H M S),分别为小时,分钟和秒。它们是可选择的;但是,假设选择了textView H.当触摸文本视图M时,自动取消选择textview H,并且textview M是唯一选择的。 S的情况也是如此。所以他们切换。

现在我有以下内容:

enter image description here

   View.OnClickListener clickListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TextView previousText = (TextView) previousView;
                TextView curText = (TextView) v;
                // If the clicked view is selected, deselect it
                if (curText.isSelected()) {
                    curText.setSelected(false);
                    curText.setTextColor(getResources().getColor(R.color.red_highlight));
                }
                // If this isn't selected, deselect  the previous one (if any)
                else {
                    if (previousText != null && previousText.isSelected()) {
                        previousText.setSelected(false);
                        previousText.setTextColor(getResources().getColor(R.color.red_highlight));
                    }
                    curText.setSelected(true);
                    curText.setTextColor(getResources().getColor(R.color.white));
                    previousView = v;
                }

            }
        };

        findViewById(R.id.hourtext).setOnClickListener(clickListener);
        findViewById(R.id.minutetext).setOnClickListener(clickListener);
        findViewById(R.id.secondtext).setOnClickListener(clickListener);

我希望计时器在选择H时记录数小时,选择M时记录几小时,以及选择S时记录秒数。

我试图遵循这个:

Android OnClickListener - identify a button

但是如何检查当前选择的TextView,以便在选择TextView时可以执行不同的方法/功能。

2 个答案:

答案 0 :(得分:1)

您可以查看text_view ID,如下所示......

View.OnClickListener clickListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(v.getID() == R.id.hourtext){
                   //corresponding button logic should below here
                } else if (v.getID() == R.id.minutetext) {
                   //corresponding button logic should below here
                } else if (v.getID() == R.id.secondtext) {
                   //corresponding button logic should below here
                }
                }

            }
        };

        findViewById(R.id.hourtext).setOnClickListener(clickListener);
        findViewById(R.id.minutetext).setOnClickListener(clickListener);
        findViewById(R.id.secondtext).setOnClickListener(clickListener);

答案 1 :(得分:0)

我假设选择' ,你的意思是集中注意力。 使用此:

在父视图上调用getCurrentFocus()http://developer.android.com/reference/android/app/Activity.html#getCurrentFocus%28%29