我正在开发餐厅菜单应用。我在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" />
答案 0 :(得分:0)
您要做的是使用intent
和extras
将点击的项目的信息传递给活动。有几种方法可以做到这一点:
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);