【问题标题】:Show/hide text with button使用按钮显示/隐藏文本
【发布时间】:2013-10-11 14:36:20
【问题描述】:

我正在尝试通过button 点击显示文本。

这是我的onClick 代码:

public class Uteliv extends Activity {

    public void onCrate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_uteliv);

        TextView tidiTekst = (TextView) findViewById(R.id.tidiTekst);
        tidiTekst.setVisibility(View.GONE);

        Button tidiKnapp= (Button) findViewById(R.id.tidiKnapp);
        tidiKnapp.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            tidiTekst.setVisibility(View.VISIBLE);

        }
     });
   }
}

怎么了?当我在手机上测试它时,我只得到一个空白页。

【问题讨论】:

  • 你让你的 textview 不可见不是吗?你得到什么例外?
  • 您遇到了什么错误?有吗?
  • 你只写onCreate对吗?因为这里写的是onCrate。 . AFAIK 它应该得到编译错误。但正如你所说的那样,它可能正在运行。还是要仔细检查一下。

标签: android textview android-button


【解决方案1】:

除非这是您帖子中的拼写错误,否则您的问题是您没有声明正确的 Activity 方法

public void onCrate(Bundle savedInstanceState) {

应该是

public void onCreate(Bundle savedInstanceState) {

另外,你可能应该让你的Views 成员变量(在onCreate() 之前声明它们并在onCreate() 内部初始化它们)

编辑

要显示/隐藏您的TextView,您可以使用getVisibility 来确定要做什么。所以会是这样的

public void onClick(View v) {
        tidiTekst.setVisibility((tidiTekst.getVisibility() == View.Visible) 
                                                ? View.GONE : View.VISIBLE);
    }

【讨论】:

  • 就是这样!感谢您的关注 :) 如何在显示文本时关闭它?
  • 什么意思?您要关闭的“它”是什么?
  • 我不明白。您想在显示文本时隐藏文本?现在您将TextView 设置为Gone,然后在单击Button 时将其设置为VISIBLE。你想发生什么?您想何时再次隐藏文本?
  • 首先我点击按钮显示文本,然后我想再点击一次隐藏文本
  • 非常感谢。大帮助:)
【解决方案2】:

activity_Main.xml

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:orientation="vertical"
    android:padding="10dip" >



    <Button
        android:id="@+id/mybtn"
        style="?buttonBarButtonStyle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:layout_weight="1"
        android:background="#c4c5c7"
        android:shadowColor="#959597"
        android:shadowDx="0"
        android:shadowDy="1"
        android:shadowRadius="1"
        android:text="Button"
        android:textColor="#ffffff"
        android:textSize="30sp"
        android:textStyle="bold" />

    <TextView
    android:id="@+id/myTextView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:text="hidden"
    android:visibility="gone"/>

</LinearLayout>

MainActivity.java 的代码

private TextView mytxtvw;
private Button myButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mytxtvw=(TextView)findViewById(R.id.myTextView);
    myButton=(Button)findViewById(R.id.mybtn);

    onBtnClick();
}

public void onBtnClick()
{
    myButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            mytxtvw.setVisibility((mytxtvw.getVisibility() == View.VISIBLE) 
                    ? View.GONE : View.VISIBLE);

        }
    });



}

}

【讨论】:

    【解决方案3】:

    在 on-create 方法之外定义你的 button 和 textView 变量。在你发布你得到的错误之前,我会假设你得到一个空指针,因为一旦 onCreate 完成它们就会超出范围。

    TextView tidiTekst;
    Button tidiKnapp;
    
    public void onCrate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_uteliv);
    
    
        tidiTekst = (TextView) findViewById(R.id.tidiTekst);
        tidiTekst.setVisibility(View.GONE);
    
        tidiKnapp= (Button) findViewById(R.id.tidiKnapp);
        tidiKnapp.setOnClickListener(new OnClickListener() {
    
            public void onClick(View v) {
                tidiTekst.setVisibility(View.VISIBLE);
    
            }
        });
    }
    

    【讨论】:

    • 测试时还是空白页。
    【解决方案4】:

    如果你将你的 textView 标记为 final 是否有效?

    final TextView tidiTekst = (TextView) findViewById(R.id.tidiTekst);
    

    【讨论】:

      【解决方案5】:

      请在 Eclipse 或 IntelliJ IDEA 等所见即所得 IDE 中检查您的 R.layout.activity_uteliv,在图形模式下编辑它,一定是布局(xml)有问题。

      【讨论】:

        【解决方案6】:

        在 xml 中:

         <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:layout_gravity="center"
                    android:layout_marginTop="@dimen/_6sdp">
        
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="MORE"
                        android:textStyle="bold"
                        android:textColor="@color/darkgray"
                        android:textSize="@dimen/_10sdp"
                        android:gravity="left"
                        android:id="@+id/moreone"/>
                </LinearLayout>
                <View
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:background="@color/darkgray"
                    android:layout_marginTop="@dimen/_6sdp"/>
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:layout_gravity="center"
                    android:layout_marginTop="@dimen/_9sdp">
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="16) I will not indulge in any way in any act that is against the spirit of law and society. "
                        android:textStyle="bold"
                        android:textColor="@color/darkgray"
                        android:textSize="@dimen/_10sdp"
                        android:gravity="left"
                        android:id="@+id/tandcone"/>
                </LinearLayout>
        
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:layout_gravity="center"
                    android:layout_marginTop="@dimen/_6sdp">
        
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="17) I will treat all with dignity irrespective and provide them with high level of service and remedies for their dissatisfaction any time during the course of my business as an Independent Associate."
                        android:textStyle="bold"
                        android:textColor="@color/darkgray"
                        android:textSize="@dimen/_10sdp"
                        android:gravity="left"
                        android:id="@+id/tandctwo"/>
                </LinearLayout>
        

        在 MainActivity 中:

          moreone.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    tandcone.setVisibility((tandcone.getVisibility() == View.VISIBLE)
                            ? View.GONE : View.VISIBLE);
                    tandctwo.setVisibility((tandctwo.getVisibility() == View.VISIBLE)
                            ? View.GONE : View.VISIBLE);
        
                }
            });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-06-05
          • 1970-01-01
          相关资源
          最近更新 更多