android - 字符按我点击的顺序出现

标签 android button textview

例如。下面的屏幕顶部有图片,有一些空框,框下方有一些按钮。每个按钮都有一个文本字符(“a”,“c”,“t”)。您单击一个按钮,按钮的文本出现在框中。你可以按你想要的顺序点击它们,但答案是“猫”,所以当你按正确的顺序放置字符时,你就会得到 toast 。

我试着用 TextViews 和 Buttons 来做。当我点击按钮时,我可以让按钮消失,同时出现一个 TextView 。但是每个 TextView 在屏幕上都有一个固定位置,所以我需要将每个框中的每个字符都隐藏起来,当我单击“c”字符时,它会出现在第一个框中,而其他“c”字符则保持不可见。但是如果我先点击“a”,它就会出现在第二个框中,因为变化太大,无法完成所有操作。我不擅长解释,但如果有人知道如何更轻松地做到这一点,请回复!

这是我的代码:

    public class MainActivity extends ActionBarActivity implements OnClickListener{

Button b1;
Button b2;
Button b3;

TextView tg1;
TextView tg2;
TextView tg3;

TextView to1;
TextView to2;
TextView to3;

TextView tl1;
TextView tl2;
TextView tl3;

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

    b1 = (Button)findViewById(R.id.bg);
    b1.setOnClickListener(this);
    b2 = (Button)findViewById(R.id.bo);
    b2.setOnClickListener(this);
    b3 = (Button)findViewById(R.id.bl);
    b3.setOnClickListener(this);

    tg1 = (TextView)findViewById(R.id.tg1);
    tg2 = (TextView)findViewById(R.id.tg2);
    tg3 = (TextView)findViewById(R.id.tg3);

    to1 = (TextView)findViewById(R.id.to1);
    to2 = (TextView)findViewById(R.id.to2);
    to3 = (TextView)findViewById(R.id.to3);

    tl1 = (TextView)findViewById(R.id.tl1);
    tl2 = (TextView)findViewById(R.id.tl2);
    tl3 = (TextView)findViewById(R.id.tl3);

}

@Override
public void onClick(View v) {
     switch(v.getId()) {
     case R.id.bg:
         b1.setVisibility(View.INVISIBLE);
         tg1.setVisibility(View.VISIBLE);
         tg2.setVisibility(View.INVISIBLE);
         tg3.setVisibility(View.INVISIBLE); 
       break;
     case R.id.bo:
         b2.setVisibility(View.INVISIBLE); 
         to2.setVisibility(View.VISIBLE);
         to1.setVisibility(View.INVISIBLE);
         to3.setVisibility(View.INVISIBLE); 

       break;
     case R.id.bl:
         b3.setVisibility(View.INVISIBLE);
         tl3.setVisibility(View.VISIBLE);
         tl2.setVisibility(View.INVISIBLE);
         tl1.setVisibility(View.INVISIBLE); 
   }
}

    <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="hu.szada.gombokelso.MainActivity"
android:orientation="horizontal">

<TextView 
    android:id="@+id/tl1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:visibility="invisible"
    android:text="l"/>

<Button
    android:id="@+id/bo"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:layout_marginRight="86dp"
    android:onClick="onClick"
    android:text="o" />

<Button
    android:id="@+id/bl"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_alignBaseline="@+id/bg"
    android:layout_alignBottom="@+id/bg"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="36dp"
    android:onClick="onClick"
    android:text="l" />

<Button
    android:id="@+id/bg"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_centerVertical="true"
    android:layout_marginRight="14dp"
    android:layout_toLeftOf="@+id/bo"
    android:onClick="onClick"
    android:text="g" />

<TextView
    android:id="@+id/tg1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/tl"
    android:layout_alignBottom="@+id/tl"
    android:layout_alignLeft="@+id/tl"
    android:layout_weight="1"
    android:visibility="invisible"
    android:text="g" />

<TextView
    android:id="@+id/to1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/tl"
    android:layout_alignBottom="@+id/tl"
    android:layout_alignLeft="@+id/tl"
    android:layout_weight="1"
    android:visibility="invisible"
    android:text="o" />

///第二个

 <TextView
     android:id="@+id/to2"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignBaseline="@+id/tl1"
     android:layout_alignBottom="@+id/tl1"
     android:layout_marginLeft="19dp"
     android:layout_toRightOf="@+id/tl1"
     android:layout_weight="1"
     android:visibility="invisible"
     android:text="o" />

 <TextView
     android:id="@+id/tg2"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignBaseline="@+id/to2"
     android:layout_alignBottom="@+id/to2"
     android:layout_alignLeft="@+id/to2"
     android:layout_weight="1"
     android:visibility="invisible"
     android:text="g" />

 <TextView
     android:id="@+id/tl2"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignBaseline="@+id/to2"
     android:layout_alignBottom="@+id/to2"
     android:layout_alignRight="@+id/to2"
     android:layout_weight="1"
     android:visibility="invisible"
     android:text="l" />

 /// Third


   <TextView
       android:id="@+id/tg3"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignBaseline="@+id/to2"
       android:layout_alignBottom="@+id/to2"
       android:layout_alignRight="@+id/bl"
       android:layout_weight="1"
       android:visibility="invisible"
       android:text="g" />

   <TextView
       android:id="@+id/tl3"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignBaseline="@+id/tg3"
       android:layout_alignBottom="@+id/tg3"
       android:layout_alignLeft="@+id/tg3"
       android:layout_weight="1"
       android:visibility="invisible"
       android:text="l" />

   <TextView
       android:id="@+id/to3"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignBaseline="@+id/tg3"
       android:layout_alignBottom="@+id/tg3"
       android:layout_toRightOf="@+id/tl3"
       android:layout_weight="1"
       android:visibility="invisible"
       android:text="o" />

最佳答案

您可能想尝试一种稍微不同的方法。

如果我没理解错的话,您想使用给定的字母按钮“键入”一个词。就像那些刽子手风格的游戏之一。

为什么不即时附加 TextView 。

有点像

@Override
public void onClick(View v) {

    //Grab the surrounding layout for the textviews
    GridView answerGrid = (GridView)getViewById(R.id.answerGrid);

    //Get the text that was on the button
    Button b = (Button)v;
    String btnText = b.getText().toString();

    //Make a text view with text
    TextView txt = new TextView();
    text.setText(btnText);

    //Append to text view container
    answerGrid.addView(txt);

    //Invisible button
    b.setVisibility(View.INVISIBLE);
}

尚未测试这是否完美,但这是一个开始。

=====

我看过你的xml

为什么不使用 GridView?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                ....>
    <GridView android:id="@+id/answerGrid"
              ....>
         <!-- Put nothing here. This is for answers -->
    </GridView>

    <GridView android:id="@+id/lettersGrid"
              android:layout_below="answerGrid"
              ....>
        <!-- Buttons in here -->
    </GridView>

</RelativeLayout>

这样您就可以根据您正在玩的单词的长度自定义行数/列数。 GridView 会自动给你一个整洁的布局和间距。

看看 GridView doc并按照您想要的方式进行定制。

请参阅上面我对 Java 代码的编辑。

关于android - 字符按我点击的顺序出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30831948/

相关文章:

android - 在派生类中覆盖 onTouchEvent

android - 如何将应用内购买添加到 Opera Mobile Store 的应用中

c# - 如何通过单击按钮更改所有标签前景色

Python Button 绑定(bind)两个函数并使用绑定(bind)发送参数

android - TextView 中的可点击单词

android - 从 pt 中的 CSS 字体大小转换为 Android 等价物

android - 在手机浏览器中打开时,我们如何从 html 按钮打开 android 应用程序

android - 我可以存储 Android SDK 中的对象(例如位置)吗?

javascript - onclick 按钮获取事件图像信息

android - 如何将文本添加到edittext