Android 单击时,字符按顺序显示
比如说。屏幕顶部有一张图片,下面是一些空框,下面是一些按钮。每个按钮都有一个文本字符(“a”、“c”、“t”)。单击一个按钮,该按钮的文本将显示在框中。你可以按你想要的顺序点击它们,但答案是“cat”,所以当你把字符按正确的顺序排列时,你就可以干杯了 我试着用文本视图和按钮来做。我可以使按钮消失,当我点击它和一个文本视图出现在同一时间。但是每个文本视图在屏幕上都有一个固定的位置,所以我需要将每个框中的每个字符都设置为不可见,当我单击“c”字符时,它会显示在第一个框中,而其他“c”字符保持不可见。但是如果我先点击“a”,它就会出现在第二个框中,因为有太多的变化而无法全部完成。我不擅长解释,但如果有人知道如何更容易解释,请回答 这是我的密码:Android 单击时,字符按顺序显示,android,button,textview,Android,Button,Textview,比如说。屏幕顶部有一张图片,下面是一些空框,下面是一些按钮。每个按钮都有一个文本字符(“a”、“c”、“t”)。单击一个按钮,该按钮的文本将显示在框中。你可以按你想要的顺序点击它们,但答案是“cat”,所以当你把字符按正确的顺序排列时,你就可以干杯了 我试着用文本视图和按钮来做。我可以使按钮消失,当我点击它和一个文本视图出现在同一时间。但是每个文本视图在屏幕上都有一个固定的位置,所以我需要将每个框中的每个字符都设置为不可见,当我单击“c”字符时,它会显示在第一个框中,而其他“c”字符保持不可见。
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);
}
}
}
///第二
<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" />
///第三
您可能想尝试一种稍微不同的方法 如果我理解正确,您希望使用给定的字母按钮“键入”一个单词。就像一个刽子手风格的游戏 为什么不动态附加文本视图呢 差不多
@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将自动为您提供整洁的布局和间距
请查看,并按照您的需要进行定制
有关Java代码,请参见我上面的编辑。谢谢您的回答,是的,您理解我,我想在《刽子手》风格的游戏中这样做。我发布了我的xml,也许它能帮上忙。很高兴听到这个消息,是的,xml会帮助我做出更具体的回答。我正试图用你的代码来做这件事,但我不理解你的布局的第一步。你能解释一下吗?第一行只是得到一个对部分布局的引用,所以稍后我们可以告诉android把文本视图放在哪里。请看我的编辑,希望XML更清晰。非常感谢!最后,我有时间尝试它,它的工作!
<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>