【问题标题】:Android Button Doing Opposite of CommandAndroid按钮与命令相反
【发布时间】:2013-09-30 01:01:47
【问题描述】:

所以我刚开始使用 Android 开发工具包并学习了如何创建按钮并让它们工作。为了测试我所知道的,我制作了一个简单的应用程序,如果您单击右侧的按钮,则显示“正确”,如果单击左侧的按钮,则显示“白痴”。除了显示按钮单击的相反消息之外,一切正常。

这是我的 xml 代码:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
    android:id="@+id/textv1"
    android:layout_width="149dp"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="57dp"
    android:text="Click the Right Button" />

<Button
    android:id="@+id/left"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textv1"
    android:layout_marginTop="29dp"
    android:layout_toLeftOf="@+id/textv1" />

<Button
    android:id="@+id/right"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/left"
    android:layout_alignBottom="@+id/left"
    android:layout_toRightOf="@+id/textv1" />

这是我的 Java 代码:

    package com.clicktherightbutton;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

Button rightb;
Button leftb;
TextView Display;

String yes = "Correct!!!";
String no = "Idiot!!!";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    rightb=(Button)findViewById(R.id.right);
    leftb=(Button)findViewById(R.id.left);
    Display=(TextView)findViewById(R.id.textv1);

    rightb.setOnClickListener(new View.OnClickListener() 
    {

        @Override
        public void onClick(View v) 
        {
            // TODO Auto-generated method stub
            if(rightb.isPressed())
                Display.setText(yes);
                rightb.setEnabled(false);
                leftb.setEnabled(false);
        }
    });

    leftb.setOnClickListener(new View.OnClickListener() 
    {

        @Override
        public void onClick(View v) 
        {
            // TODO Auto-generated method stub
            if(leftb.isPressed())
                Display.setText(no);
                rightb.setEnabled(false);
                leftb.setEnabled(false);

        }
    });
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

我知道如果我切换“左”和“右”按钮会按照我的意愿进行操作,但我想知道为什么它与我编写的代码相反?我的代码有问题吗?

谢谢

【问题讨论】:

    标签: android android-button


    【解决方案1】:

    将布局更改为:

    <TextView
        android:id="@+id/textv1"
        android:layout_width="149dp"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="57dp"
        android:text="Click the Right Button" />
    
    <Button
        android:id="@+id/left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textv1"
        android:layout_marginTop="29dp"
        android:layout_toLeftOf="@id/textv1" />
    
    <Button
        android:id="@+id/right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/left"
        android:layout_alignBottom="@id/left"
        android:layout_toRightOf="@id/textv1" />
    

    您只能声明一次@+id - 它会创建一个变量。稍后使用@id 引用相同的变量。

    【讨论】:

    • 我试过你说的,但我得到了同样的结果。不过感谢您的提示。
    • 您确定按钮布局正确吗?你可以给他们添加一个文本来检查哪个是哪个。
    • 我刚刚添加了文字,左边是左边,右边是右边。当我在 GUI 上单击它们时,它还会显示正确的 ID,这让我更加困惑它们是如何混淆的。
    • 我关闭并重新打开了我的项目文件,它开始工作......哇。感谢您尝试帮助我解决此问题。
    猜你喜欢
    • 2010-12-26
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    相关资源
    最近更新 更多