java - 带有详细页面的“图书馆”

标签 java android xml eclipse

快速的小问题。我是 Android 的真正初学者,所以请耐心等待。

我需要开展某种图书馆 Activity 。它需要有大约 30 个关键字的列表,当您单击关键字时,它会转到另一个屏幕并提供内容(可能还有图片)。例如:关键字:伦敦内容:这是 blabla 市。就是这么简单。

最简单的方法是什么?任何链接或示例代码都会非常棒!一个简单的答案当然也会有帮助。

最佳答案

首先:检查您的新项目是否已经创建了 activity_main.xml,如果没有,请在 /res/layout 中创建一个 Android XML Layout code> 文件夹稍后分配给您的 Activity,将其命名为 activity_main.xml

在布局中,您可以在 TextView 中添加 LinearLayout 或任何您想要表示该关键字的内容。

注释 1: 将它们的 android:id="" 命名为易于内存的名称,因为稍后您将在代码中使用它们。

现在转到 MainActivity.javaonCreate 方法并编写以下代码行:

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;

不要忘记包含 LinearLayoutTextView 导入。您可以使用 Ctrl + Shift + O 自动执行导入。

然后,返回到 onCreate 方法,并将变量分配给 activity_main.xml 的元素,如下所示:

londonKeywordLayout = (LinearLayout) findViewById(R.id.londonKeywordLayoutID);
londonKeyword       = (TextView)     findViewById(R.id.londonKeywordID);

“londonKeywordLayoutID” 例如,应该是您的 ID,如我在注释 1 中所说,如有必要,请更改。

然后,您需要使用我上面告诉您的相同方法创建一个 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 并声明布局和 TextView 的所有操作,但此时仅创建一个它将用于所有关键字,它将是动态的。在类声明之后声明这些变量:

String detailText;
String titleText;
String imgPath;

您应该转到onCreate方法并以这种方式获取您通过Intent发送的值:

    Bundle extras = getIntent().getExtras();
    detailText    = extras.getString("DETAILTEXT");
    titleText     = extras.getString("TITLE");
    imgPath       = extras.getString("IMAGEPATH");

然后,您必须对 DetailActivity 的标题 TextView 使用 .setText(detailText),并对其他内容执行相同的操作字符串,并处理创建绘图的图像。

基本上就是这样,有任何帮助,请在此处发表评论,我会尽力帮助您。

祝你好运。

关于java - 带有详细页面的“图书馆”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19953640/

相关文章:

android - fragment 中的 MergeAdapter 布局问题

xml - 如何在Jquery中访问xml文本节点

javascript - GulpJS - 如何从 xml 文件读取值并将其添加到 json 文件?

java - JSF - 带参数的调用方法(tomcat6)

java.lang.OutOfMemoryError : Java heap space on startup 错误

java - 我们可以直接实例化一个抽象类吗?

java - 找不到元素 'resources'的声明

java - 扫描仪不停止读取输入

解析年份时出现 java.time.format.DateTimeParseException

Android返回app调用方法