如何让多个按钮指向一个“动态”活动?

时间:2015-07-03 22:38:42

标签: android android-activity

我有一个问题,我正在创建一个有35部手机可供选择的应用程序,每部手机都有一个单独的按钮,将导致其自己的活动。每个活动将包含9个按钮,这些按钮还将导致9个单独的活动。 问题是这意味着我将不得不创建35 x 9 = 315个活动! 当然有一种方法可以让每个手机指向一个“动态”活动,该活动将根据所选手机自动更改其数据?

其中一个电话制作活动的代码如下:

package com.hashmi.omar.store;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class AppleActivity extends Activity implements View.OnClickListener {

Button buttonip6;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_apple);

    //Sets font for text
    Typeface vodaLt = Typeface.createFromAsset(getAssets(), "VODALT.TTF");
    TextView vodaHeading = (TextView) findViewById(R.id.textView);
    vodaHeading.setTypeface(vodaLt);

    //Sets up iphone 6 button
    buttonip6 = (Button) findViewById(R.id.buttonip6);
    buttonip6.setOnClickListener(this);

}

private void title_activity_iphone6() {
    startActivity(new Intent(AppleActivity.this, Iphone6Activity.class));
}


public void onClick(View v) {
    switch (v.getId()){

            case R.id.buttonip6:
                title_activity_iphone6();
                break;
    }
  }
}

以下是上述活动的xml布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp"
tools:context="com.hashmi.omar.store.Picker"
android:background="#ffffffff"
android:weightSum="1">

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="Select an iPhone"
    android:id="@+id/textView"
    android:textColor="#ffff0000"
    android:textSize="31sp"
    android:gravity="center" />

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:id="@+id/scrollView" >

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="iPhone 6"
            android:id="@+id/textView5"
            android:textSize="24sp"
            android:layout_gravity="center_horizontal" />

        <ImageView
            android:layout_width="224dp"
            android:layout_height="457dp"
            android:id="@+id/imageView"
            android:background="@drawable/iphone6_3"
            android:layout_gravity="center_horizontal"
            android:adjustViewBounds="true"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="FREE"
            android:id="@+id/textView7"
            android:textSize="18sp"
            android:layout_weight="0.97"
            android:layout_marginTop="5dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="on Pay monthly from £49"
            android:id="@+id/textView71"
            android:textSize="16sp"
            android:layout_weight="0.97" />



        <Button
            android:layout_width="120dp"
            android:layout_height="35dp"
            android:id="@+id/buttonip6"
            android:background="@drawable/choosephonebutton"
            android:layout_marginTop="10dp"
            android:layout_gravity="bottom|center_horizontal" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="_____________________________"
            android:id="@+id/textView6"
            android:textSize="26sp"
            android:layout_gravity="center_horizontal" />



        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="iPhone 6 Plus"
            android:id="@+id/textView9"
            android:textSize="24sp"
            android:layout_gravity="center_horizontal" />

        <ImageView
            android:layout_width="224dp"
            android:layout_height="457dp"
            android:id="@+id/imageView2"
            android:background="@drawable/iphone6_3"
            android:layout_gravity="center_horizontal"
            android:adjustViewBounds="true"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="FROM £19"
            android:id="@+id/textView8"
            android:textSize="18sp"
            android:layout_weight="0.97"
            android:layout_marginTop="5dp"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="on Pay monthly from £54"
            android:id="@+id/textView81"
            android:textSize="16sp"
            android:layout_weight="0.97" />

        <Button
            android:layout_width="120dp"
            android:layout_height="35dp"
            android:id="@+id/buttonip62"
            android:background="@drawable/choosephonebutton"
            android:layout_marginTop="10dp"
            android:layout_gravity="bottom|center_horizontal" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="_____________________________"
            android:id="@+id/textView10"
            android:textSize="26sp"
            android:layout_gravity="center_horizontal" />



        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="iPhone 5S 16GB"
            android:id="@+id/textView11"
            android:textSize="24sp"
            android:layout_gravity="center_horizontal" />

        <ImageView
            android:layout_width="224dp"
            android:layout_height="457dp"
            android:id="@+id/imageView3"
            android:background="@drawable/iphone5s"
            android:layout_gravity="center_horizontal"
            android:adjustViewBounds="true"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="FROM £9"
            android:id="@+id/textView12"
            android:textSize="18sp"
            android:layout_weight="0.97"
            android:layout_marginTop="5dp"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="on Pay monthly from £35"
            android:id="@+id/textView121"
            android:textSize="16sp"
            android:layout_weight="0.97" />

        <Button
            android:layout_width="120dp"
            android:layout_height="35dp"
            android:id="@+id/buttonip63"
            android:background="@drawable/choosephonebutton"
            android:layout_marginTop="10dp"
            android:layout_gravity="bottom|center_horizontal" />



        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="_____________________________"
            android:id="@+id/textView13"
            android:textSize="26sp"
            android:layout_gravity="center_horizontal" />



        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="iPhone 5C 8GB"
            android:id="@+id/textView14"
            android:textSize="24sp"
            android:layout_gravity="center_horizontal" />

        <ImageView
            android:layout_width="224dp"
            android:layout_height="457dp"
            android:id="@+id/imageView4"
            android:background="@drawable/iphone5c"
            android:layout_gravity="center_horizontal"
            android:adjustViewBounds="true"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="FREE"
            android:id="@+id/textView15"
            android:textSize="18sp"
            android:layout_weight="0.97"
            android:layout_marginTop="5dp"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="on Pay monthly from £30"
            android:id="@+id/textView151"
            android:textSize="16sp"
            android:layout_weight="0.97" />

        <Button
            android:layout_width="120dp"
            android:layout_height="35dp"
            android:id="@+id/buttonip64"
            android:background="@drawable/choosephonebutton"
            android:layout_marginTop="10dp"
            android:layout_gravity="bottom|center_horizontal" />


    </LinearLayout>
  </ScrollView>
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

如果不需要,请不要创建新活动,使用片段。此外,在创建新片段时,您可以在构造函数中添加参数,这将自定义您的小部件。

答案 1 :(得分:0)

如果每个手机的视图结构相同,您只能创建3个不同的活动,并用适当的数据填充它们。
要做到这一点,在第一个活动中选择一个电话时,在意图上添加所选电话的ID 然后在下一个活动中,阅读额外的内容,并从那里决定要显示什么 第三项活动相同,