如何让多个按钮指向一个'动态'活动?
问题描述:
我有一个问题,我正在创建一个有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>
答
如果不需要的话,不产生新活动,使用片段。另外,在创建新片段时,您可以在构造函数中添加参数,这将自定义您的小部件。
答
如果意见的结构是每一个手机一样,你只能创建3种不同的活动,并与相应的数据填充它们。
要做到这一点,在第一项活动中选择手机时,请将所选手机的ID添加到意图中。
然后在下一个活动中,阅读额外的内容,然后从中决定要显示的内容。
同为第三个活动,
我是新到Android,所以大多数的这正好在我的头上。你的意思 私人无效title_activity_iphone6(){ startActivity(新意图(AppleActivity.this,Iphone6Activity.class)); } 公共无效的onClick(视图v){ 开关(v.getId()){ 情况R.id.buttonip6: title_activity_iphone6(); 休息; }} 确实iphone6这里需要有一个ID? – howzat