我是一个完整的新手并且一无所知。我可能已经非常低效了,但这就是学习曲线。我正在制作一个Android应用程序,使用Eclipse来完成它。
该应用将有3个屏幕。在前两个屏幕上是一个按钮列表。用户点击适用于该情况的按钮,然后该按钮从该屏幕消失并出现在屏幕3上。屏幕2与屏幕1相同但具有单独的列表(选择仍然与屏幕3混合)。
我正在设置第一个屏幕,我在strings.xml中输入了很多很多字符串(这是一个很长的列表)。我们假设这是一个购物清单计划。字符串设置如下:
<string name="vc002">Bread</string>
<string name="vc003">Butter</string>
等等。布局是这样的:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/v001"
android:layout_gravity="center"
/>
<Button
android:id="@+id/vb01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_gravity="center"
android:text="@string/vc001"
/>
<Button
android:id="@+id/vb02"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_gravity="center"
android:text="@string/vc002"
/>
这是以下活动,屏幕1:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class VenialListActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button vb01 = (Button)findViewById(R.id.vb01);
vb01.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
vb01.setVisibility(View.INVISIBLE);
};
;
}
);
}
}
现在我被卡住了。按钮按预期消失,但我不知道如何让它出现在屏幕3上。同样,我希望能够点击屏幕3上的按钮(如果出现错误)并将其发回国内并制作它再次可见。
有人能帮帮我吗?如果我违反任何网站规则,或者如果我让某人对我的新闻感到头疼,我会道歉。我不知道上面的内容是什么,我只是知道它有效,所以我不应该打破它。这就像学习拉丁语或希腊语或Dvorak打字。这肯定是缓慢的,我会犯更多的错误。无论如何,如果你做到这一点,我感谢你的时间和耐心。 =)
答案 0 :(得分:0)
我绝对会建议为每个屏幕创建单独的活动。虽然有例外,但这就是Android应用程序的设计方式。
在Button的onClickListener()中,而不是删除它(设置它对View.INVISIBLE的可见性不会在活动中持续存在,因此,除非您使用onSaveInstantState()和onRestoreInstanceState()在应用中明确处理它当用户回到此活动时它将会显示)您将要在应用程序的首选项中保存该单词并开始下一个活动,无论是第二个还是第三个。
在这些活动中,您应该阅读用户通过首选项选择的单词并从中获取。
有多种方法可以做到这一点,但是这种方法对我来说应该可以正常收集。