【问题标题】:create multiple activities based on already created activity & java根据已创建的活动和 java 创建多个活动
【发布时间】:2017-02-01 16:12:37
【问题描述】:

我对 android studio、xml 和 java 相当陌生

感谢这个网站及其所有帮助我设法创建了一个主要活动

我的 mainactivity 将创建大约 100 个按钮,每个按钮都指向一个新 Activity

我已经创建了第二个活动并让它按我想要的方式工作

我的问题: 我怎样才能复制我的第二个活动 100 次而无需手动创建它们?

然后我可以编辑每个活动显示的图像/文本/声音等

由于我的第二个活动包含音频,我需要创建 Java 和 XML

另外我正在设计应用程序以使用多种屏幕尺寸,因此还需要复制 small/large/xlarge xml

我认为创建所有这些的唯一方法是非常乏味的,因此希望能在减少工作量方面提供任何帮助

提前致谢

我的第二个活动代码(XML 和 Java):

<TextView
    android:text="my text"
    android:textSize="16sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/txt1"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

<TextView
    android:text="blah blah blah"
    android:textSize="12sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/txt1"
    android:layout_below="@+id/txt1"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="13dp" />

<TextView
    android:text="blah blah blah"
    android:textSize="12sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/txt2"
    android:layout_below="@+id/txt1"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:text="blah blah blah"
    android:textSize="12sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/txt3"
    android:layout_below="@+id/txt2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="10dp"/>

<Button
    android:text="click me"
    android:textSize="12sp"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/butt1"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/txt3"
    android:background="@drawable/myimage"/>

JAVA

        @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    Button two = (Button)this.findViewById(R.id.butt1);
    final MediaPlayer mp1 = MediaPlayer.create(this, R.raw.mymp3file);
    two.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v) {
            mp1.start();
        }
    });
}

【问题讨论】:

  • 显然你不应该将数据与 UI 元素混合......如果你所有的活动都表现相同但数据不同,那么显然它应该是一个活动......所以我认为 2 个活动就是你需要
  • 感谢我现在已经拆分了帖子中的元素 :)

标签: android android-layout android-activity copy


【解决方案1】:

如果您的所有活动都相同,我将只使用一个活动,并将您的代码放在按钮的 onClick 中。如果需要,您可以更改 UI 和工具栏。

【讨论】:

  • 听起来很完美,基本上所有的活动都是一样的,只是数据不同,但我不确定你在 onclick 中添加代码是什么意思
  • 每个按钮都有一个 onclick 方法,它们将扩展。对于每个按钮说我的 button.setOnClickListener(new OnClickListener( 点击返回,它会填写你的方法。你在 onclick 中输入的任何内容都会在你点击它时被调用。
  • 我刚刚意识到你有 100 个按钮。您将要为此制作一个自定义按钮。只是为了有一个单数的onClick。如果你只是在学习如何做 Android,你可以列出按钮,但这是不好的形式。如果是我,我会有一个自定义按钮,将我需要的自定义属性放在 xml 中以读取到每个按钮。这样我只在xml中定义一次按钮,代码会比较干净。
  • 感谢您的建议,我想我明白您的意思了....与其使用 onclick 创建 100 个按钮,不如创建一个内置 onclick 的自定义按钮?但是计划是按钮(100)将显示图像和文本,然后单击移动到显示相同图像和一些不同文本的页面......基本上是导致相同图像和描述的食物图片列表如何烹饪等(这不是我的项目,但类似)....我让应用程序使用 6 个显示按钮和 6 个单独的 xml 页面,全部按我想要的方式显示...但是我认为这是不好的做法, TIA
猜你喜欢
  • 2012-02-03
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 2011-05-07
  • 1970-01-01
  • 1970-01-01
  • 2015-12-28
  • 1970-01-01
相关资源
最近更新 更多