Android 在一个布局中有很多活动

Android 在一个布局中有很多活动,android,android-layout,android-activity,Android,Android Layout,Android Activity,我正在开发餐厅菜单应用程序。我在activity_main.xml中有9个图像按钮。例如:如果我单击“汤图像”按钮,应用程序将在其他布局中显示汤价格和汤图像。但是我不想为此创建9个布局文件。所有价格都显示在一个布局中。我没有为此编写方法。我在等你的帮助。对不起,我的英语不好 这是我的菜单 <ImageButton android:layout_width="130dp" android:layout_height="170dp" android:id="@+id/i

我正在开发餐厅菜单应用程序。我在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" />

//我的项目图像
//我的物品价格

您要做的是将
意图
附加功能
一起使用,将单击项目的信息传递给活动。有两种方法可以做到这一点:

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);
    }
});
Bundle extras = getIntent().getExtras();
double price = extras.getDouble("price");
String name  = extras.getString("name");
然后,在
priceActivity.class
onCreate
方法中,您可以读取如下值:

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);
    }
});
Bundle extras = getIntent().getExtras();
double price = extras.getDouble("price");
String name  = extras.getString("name");
2) 使用XML中的
onClick
属性,通过标识
标记或类似标记来处理信息

在XML中,您可以指定
android:onClick=“myMethod”
以及标识标记,如
android:tag=“hamburger”
。然后您将使您的
myMethod

public void myMethod(View v) {
    String tagId = v.getTag().toString();
    // Create intent with extras like above
}

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

您可以按照下面的链接来解决您的问题

或者

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

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);

非常感谢你。顺便说一下,我想设置imagebutton背景。我该怎么做?点击这个链接。非常感谢。顺便说一下,我想设置imagebutton背景。我该怎么做?