用于隐藏TextView的按钮

时间:2016-04-13 21:13:19

标签: android textview onclicklistener

我一直在寻找解决方案一段时间,但似乎无法让一个人工作。关于这个问题,这里有一两个,但我似乎无法让它们继续下去。我也是Android的新手,虽然几年来我一直在玩它,但我仍然对我写的东西一无所知。

基本上我有一个TextView和一个按钮。理想情况下,我想在TextView中添加一些文本,按下它已经消失的按钮,再次按下该按钮然后再返回。

我已将其缩小到需要了解findViewById(R.id.button2)的作用,但说实话,我有点迷失了。

我已经添加了我的按钮代码,但道歉这是一个非常棒的问题

MWArray[] varargin = new MWArray[4];
varargin[0] = new MWNumericArray(1);
varargin[1] = new MWNumericArray(2.0f);
varargin[2] = new MWNumericArray(3.14);
varargin[3] = new MWCharArray("str4");

myClass obj = new myClass();
obj.myFunction(varargin);

4 个答案:

答案 0 :(得分:0)

您的代码有几个问题。我不打算给你代码,因为这不会真正帮助你学习。相反,我会解释事情,让你试着弄明白或者回答更明确的问题。

您知道使用setContentView设置的xml文件吗?其中的一些标签有一个属性android:id =" xxxx"。该xxxx是该视图的id,使用它以便您可以在代码中找到该视图。 findViewById函数遍历屏幕上的所有视图,并查找具有该id的视图并将其返回。这为您提供了对视图的引用,以便您可以更改它。例如,您可以设置其可见性,设置其背景颜色或设置OnClickListener。

因此,要有一个按钮切换另一个视图的可见性,您需要能够执行以下操作:

1)查找视图您想要更改的可见性

2)弄清楚它目前的可见性

3)弄清楚你想要的是什么(与目前的相反

4)设置该可见性

你需要编写一个完成所有这些功能的函数。然后你需要这样做

1)找到您要用来更改可见性的按钮

2)告诉它在按下时调用你的功能。

弄清楚如何单独完成每个步骤,并且应该能够将它们组合在一起。祝你好运。

答案 1 :(得分:0)

findViewById(R.id.button2)使用id button2查找视图。

您可以在内部检查点击t1是否可见(t1.setVisibility(View.GONE);不是v.setVisibility(View.GONE);),并在View.GONEView.VISIBLE之间切换。

请记住,你的findViewById()应该有一个真实的id。它们通常设置在activity_name.xml上。

您在onClick中使用onClick。我个人建议使用setOnClickListener手动设置监听器。

有很多工作要做,从这些tutorials开始。继续尝试并尝试了解你在做什么。

答案 2 :(得分:0)

看起来你需要一个toogle按钮功能,这里是一段代码。

重要提示:您必须留意@GabeSechan和@ SkyDriver2500的答案。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_layout);
    //your other code

    Button button = (Button) findViewById(R.id.button2);
    final TextView t1 = (TextView) findViewById(R.id.editText);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            t1.setVisibility(t1.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE);
        }
    });
}

答案 3 :(得分:-1)

我不确定代码是否会对您有所帮助。但为了以防万一,这里是

            final boolean[] isTvVisible = {false};
            final TextView t1 = (TextView)findViewById(R.id.editText);
            t1.setVisibility(View.GONE);

            Button button = (Button) findViewById(R.id.button2);
            button.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    if (isTvVisible[0]) {
                        t1.setVisibility(View.GONE);
                        isTvVisible[0] = false;
                    } else {
                        t1.setVisibility(View.VISIBLE);
                        isTvVisible[0] = true;
                    }
                }
            });