一个布局中的很多活动

时间:2015-11-18 18:51:09

标签: android android-layout android-activity

我正在开发餐厅菜单应用。我在activity_main.xml中有9个图像按钮。例如:如果我点击汤图像按钮,该应用程序将汤价和汤图像在其他布局。但我不想为此创建9个布局文件。所有价格都出现一个布局。我没有写这个方法。我在等你的帮忙。对不起,我的英语不好。

这是我的菜单。

<ImageButton
    android:layout_width="130dp"
    android:layout_height="170dp"
    android:id="@+id/imageButton2"
    android:layout_gravity="left|top"
    android:background="@drawable/corbalar"
    android:contentDescription="@string/corbalar"
    android:clickable="true"
    android:onClick="degistirActivity"/>

<ImageButton
    android:layout_width="130dp"
    android:layout_height="170dp"
    android:id="@+id/imageButton3"
    android:layout_gravity="center_horizontal|top"
    android:background="@drawable/zeytinyaglilar"
    android:contentDescription="@string/zeytinyaglilar"
    android:clickable="true"
    android:onClick="degistirActivity"/>

<ImageButton
    android:layout_width="130dp"
    android:layout_height="170dp"
    android:id="@+id/imageButton4"
    android:layout_gravity="right|top"
    android:background="@drawable/spesiyaller"
    android:contentDescription="@string/spesiyaller"
    android:clickable="true"
    android:onClick="degistirActivity"/>

<ImageButton
    android:layout_width="130dp"
    android:layout_height="170dp"
    android:id="@+id/imageButton5"
    android:layout_gravity="left|center_vertical"
    android:background="@drawable/pideler"
    android:contentDescription="@string/pideler"
    android:clickable="true"
    android:onClick="degistirActivity"/>

<ImageButton
    android:layout_width="130dp"
    android:layout_height="170dp"
    android:id="@+id/imageButton6"
    android:layout_gravity="center"
    android:background="@drawable/salatalar"
    android:contentDescription="@string/salatalar"
    android:clickable="true"
    android:onClick="degistirActivity"/>

<ImageButton
    android:layout_width="130dp"
    android:layout_height="170dp"
    android:id="@+id/imageButton7"
    android:layout_gravity="right|center_vertical"
    android:background="@drawable/kebaplar"
    android:contentDescription="@string/kebaplar"
    android:clickable="true"
    android:onClick="degistirActivity"/>

<ImageButton
    android:layout_width="130dp"
    android:layout_height="170dp"
    android:id="@+id/imageButton8"
    android:layout_gravity="left|bottom"
    android:background="@drawable/tatlilar"
    android:contentDescription="@string/tatlilar"
    android:clickable="true"
    android:onClick="degistirActivity"/>

<ImageButton
    android:layout_width="130dp"
    android:layout_height="170dp"
    android:id="@+id/imageButton9"
    android:layout_gravity="center_horizontal|bottom"
    android:background="@drawable/mesrubatlar"
    android:contentDescription="@string/mesrubatlar"
    android:clickable="true"
    android:onClick="degistirActivity"/>

<ImageButton
    android:layout_width="130dp"
    android:layout_height="170dp"
    android:id="@+id/imageButton10"
    android:layout_gravity="right|bottom"
    android:background="@drawable/sicakicecekler"
    android:contentDescription="@string/sicakicecekler"
    android:clickable="true"
    android:onClick="degistirActivity"/>

这是我显示信息的地方。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="tr.edu.fatih.nad0.com.kilislimenu.fiyatGoster">


//my items image
<ImageButton
    android:layout_width="250dp"
    android:layout_height="250dp"
    android:id="@+id/imageButton11"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:contentDescription="@string/gosterilecekyemek" />




//my items price 
<TextView
    android:layout_width="200dp"
    android:layout_height="50dp"
    android:id="@+id/textView"
    android:layout_below="@+id/imageButton11"
    android:layout_centerHorizontal="true" />

2 个答案:

答案 0 :(得分:0)

您要做的是使用intentextras将点击的项目的信息传递给活动。有几种方法可以做到这一点:

1)为每个项目手动创建OnClickListener(理想情况下,您将从SQLite数据库生成项目而不是静态列表)。

使用OnClickListener看起来像这样:

ImageButton myButton = (ImageButton) findViewById(R.id.myButton);
myButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent priceIntent = new Intent(getApplicationContext(), priceActivity.class);
        priceIntent.putExtra("price",6.99);
        priceIntent.putExtra("name","Hamburger");
        startActivity(priceIntent);
    }
});

然后在onCreate的{​​{1}}方法中,你会读到这样的值:

priceActivity.class

2)使用XML中的Bundle extras = getIntent().getExtras(); double price = extras.getDouble("price"); String name = extras.getString("name"); 属性通过标识onClick或某些内容来处理信息。

在XML中,您可以指定tag以及标识标记,例如android:onClick="myMethod"。那你就做出android:tag="hamburger"

myMethod

同样,理想情况下,您将从数据库加载所有这些信息,以便您可以使用更少的方法轻松访问信息,而不是直接手动将硬编码数据输入应用程序。

答案 1 :(得分:0)

您可以按照以下链接查看您的问题。

http://developer.android.com/training/basics/firstapp/starting-activity.html

可替换地,

你可以在你的按钮上实现这样的方法。

public void sendMessage(View view) {
  Intent intent = new Intent(this, DisplayMessageActivity.class);
  EditText editText = (EditText) findViewById(R.id.edit_message);
  String message = editText.getText().toString();
  intent.putExtra(EXTRA_MESSAGE, message);
}

在另一个活动中,您可以收到意图并显示您的价格。

Intent intent = getIntent();
    String message = intent.getStringExtra(MyActivity.EXTRA_MESSAGE);

    // Create the text view
    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);

    // Set the text view as the activity layout
    setContentView(textView);