快速的小问题。我是Android的真正初学者,所以请耐心等待。
我需要进行一种图书馆活动。它需要有大约30个关键字的列表,当您单击关键字时,它会转到另一个屏幕并提供内容(也许是图片)。例如: keyword:伦敦内容:这是blabla的城市。这很简单。
最简单的方法是什么?任何链接或示例代码都会非常棒!一个简单的答案也有助于提供。
答案 0 :(得分:1)
首先:检查您的新项目是否已创建activity_main.xml
,如果没有,请在Android XML Layout
文件夹中创建/res/layout
以稍后分配给您的Activity
,将其命名为activity_main.xml
。
在布局中,您可以在LinearLayout
内添加TextView
或您想要代表该关键字的任何内容。
注1:将android:id=""
命名为容易记住,因为您稍后会在代码中使用它们。
现在转到onCreate
的{{1}}方法并编写以下代码行:
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
导入。您可以使用Ctrl + Shift + O自动执行导入。
然后,返回TextView
方法并以这种方式将变量分配给onCreate
的元素:
activity_main.xml
例如, londonKeywordLayout = (LinearLayout) findViewById(R.id.londonKeywordLayoutID);
londonKeyword = (TextView) findViewById(R.id.londonKeywordID);
应该是我在注1中所说的你的身份,必要时进行更改。
然后,您需要使用我在上面告诉您的相同方法创建一个"londonKeywordLayoutID"
来处理并显示所有关键字的详细信息。
然后,在分配后,您可以设置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.
执行上面我解释的关于创建xml和声明布局和textview的所有内容,但是此时只创建一个将用于所有关键字的内容,它将是dinamically。在类声明后声明这些变量:
DetailActivity.java
您应该转到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
的图片
基本上就是,任何帮助,在这里发表评论,我会尽力帮助你。
祝你好运。答案 1 :(得分:0)
如果您将Eclipse与ADT一起使用,则可以使用“新建Android应用程序”向导中的主/详细信息流,您可以从新建 - >> Android应用程序项目。