快速的小问题。我是 Android 的真正初学者,所以请耐心等待。
我需要做一个图书馆活动。它需要包含大约 30 个关键字的列表,当您单击关键字时,它会转到另一个屏幕并提供内容(可能还有图片)。例如:关键字:伦敦内容:这是布拉布拉市。就这么简单。
最简单的方法是什么?任何链接或示例代码都会非常棒!当然,一个简单的答案也会有所帮助。
首先:检查您的新项目是否已经创建了activity_main.xml
,如果没有,Android XML Layout
请在文件夹内创建一个/res/layout
稍后分配给您的Activity
,将其命名为activity_main.xml
。
在布局中,您可以在LinearLayout
's 内添加 ' TextView
s 或任何您想要表示该关键字的内容。
注意 1:将它们命名android:id=""
为易于记忆的名称,因为稍后您将在代码中使用它们。
现在转到onCreate
您的方法MainActivity.java
并编写这行代码:
this.setContentView(R.layout.main_activity.xml);
转到您的顶部MainActivity.java
并在类声明之后,声明您创建的元素的变量,activity_main.xml
如下所示:
LinearLayout londonKeywordLayout = null;
TextView londonKeyword = null;
LinearLayout anotherKeywordLayout = null;
TextView anotherKeyword = null;
String TitleString;
String DetailString;
String ImgPathString;
不要忘记包括LinearLayout
和TextView
导入。您可以使用 Ctrl + Shift + O 自动执行导入。
然后,回到onCreate
方法并将变量分配给您的元素activity_main.xml
:
londonKeywordLayout = (LinearLayout) findViewById(R.id.londonKeywordLayoutID);
londonKeyword = (TextView) findViewById(R.id.londonKeywordID);
"londonKeywordLayoutID"
例如,应该是我在注释 1 中所说的您的 id,如有必要,请更改。
然后,您需要DetailActivity
使用我上面告诉您的相同方法创建一个来处理和显示所有关键字详细信息。
然后,在分配后,您可以设置onClick
事件以打开详细信息Activity
。
OnClickListener keywordListener = new OnClickListener() {
@Override
public void onClick(View v) {
if (v.getId() == 1){
DetailString = "London details";
TitleString = "London.";
ImgPathString = "the path to london img";
}
if (v.getId() == 2){
DetailString = "another details";
TitleString = "another.";
ImgPathString = "the path to another img";
}
Intent i = new Intent(this,DetailActivity.class)
i.putExtra("DETAILTEXT", DetailString);
i.putExtra("TITLE", TitleString);
i.putExtra("IMAGEPATH", ImgPathString);
startActivityForResult(i, 1);
}
};
londonKeywordLayout.setOnClickListener(keywordListener);
londonKeywordLayout.setId(1) //1 for london.
anotherKeywordLayout.setOnClickListener(keywordListener);
anotherKeywordLayout.setId(2) //2 for another.
对所有其他关键字执行相同的操作。
在DetailActivity.java
我上面解释的关于创建 xml 和声明布局和文本视图的所有事情中,但此时只创建一个它将用于所有关键字,它将是动态的。在类声明之后声明这些变量:
String detailText;
String titleText;
String imgPath;
你应该去onCreate
方法并获取你通过Intent
这种方式发送的值:
Bundle extras = getIntent().getExtras();
detailText = extras.getString("DETAILTEXT");
titleText = extras.getString("TITLE");
imgPath = extras.getString("IMAGEPATH");
然后,您必须使用.setText(detailText)
的标题TextView
,DetailActivity
并对其他字符串执行相同操作,并处理创建Drawing
.
基本上就是这样,任何帮助,在这里评论,我会尽力帮助你。
祝你好运。
如果您使用带有 ADT 的 Eclipse,您可以使用“新建 Android 应用程序”向导中的主/详细信息流,您可以从新建 -> Android 应用程序项目开始。