我的问题是我无法在onclickfoodimage()函数中使用food1(食物类对象,其中存储所选食物的价值)对象的值 我在onCreate()中初始化的(onClickFoodImage是单击图像时调用的方法)
FoodActivity Class
public class FoodActivity extends Activity {
public static final String EXTRA_MESSAGE2="message";
Food food1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent=getIntent();
int Foodno=intent.getExtras().getInt(EXTRA_MESSAGE2);
food1=Food.food[Foodno];
ImageView image=(ImageView)findViewById(R.id.imageView3);
image.setImageResource(food1.getFoodImageId());
}
public final void onclickfoodimage()
{
TextView textview=(TextView)findViewById(R.id.textView4);
textview.setText(food1.getFoodName());
TextView textView=(TextView)findViewById(R.id.textView5);
textView.setText(food1.getFoodDescription());
}
}
包含食物的食物类食物1是对象的数据
public class Food {
String foodName,foodDescription;
int foodImageId;
static Food food[]={new Food("Dosa","A South Indian Dish",R.drawable.dosa),new Food("Paneer","A Famous And Delicious Dish made from Paneer",R.drawable.paneer)};
Food(String name,String description,int id)
{
this.foodName=name;
this.foodDescription=description;
foodImageId=id;
}
String getFoodName()
{
return foodName;
}
String getFoodDescription()
{
return foodDescription;
}
int getFoodImageId()
{
return foodImageId;
}
public String toString()
{
return foodName;
}
}
答案 0 :(得分:0)
当您点击ImageView时,似乎 onclickfoodimage()没有被调用,我在这里为您开发了一个完整的程序,我没有对此进行测试,希望这对您有用。
MainActivity.java ,启动FoodActivity.java
public class MainActivity extends AppCompatActivity {
public static final String EXTRA_MESSAGE2="message";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(this , FoodActivity.class).putExtra(EXTRA_MESSAGE2,1);
startActivity(intent);
}
}
FoodActivity.java:
public class FoodActivity extends Activity {
public static final String EXTRA_MESSAGE2="message";
Food food1;
static ArrayList<Food> foodArray = new ArrayList<>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
foodArray.add(new Food("Dosa","A South Indian Dish",R.drawable.dosa)) ;
foodArray.add(new Food("Paneer","A Famous And Delicious Dish made from Paneer",R.drawable.paneer)) ;
Intent intent=getIntent();
int Foodno=intent.getExtras().getInt(EXTRA_MESSAGE2);
food1=foodArray.get(Foodno);
ImageView image=(ImageView)findViewById(R.id.imageView3);
image.setImageResource(food1.getFoodImageId());
}
public final void onclickfoodimage(View v)
{
TextView textview4 =(TextView)findViewById(R.id.textView4);
textview4.setText(food1.getFoodName());
TextView textView5 = (TextView)findViewById(R.id.textView5);
textView5.setText(food1.getFoodDescription());
}
}
Food.java:
public class Food {
String foodName,foodDescription;
int foodImageId;
Food(String name,String description,int id)
{
this.foodName=name;
this.foodDescription=description;
foodImageId=id;
}
String getFoodName()
{
return foodName;
}
String getFoodDescription()
{
return foodDescription;
}
int getFoodImageId()
{
return foodImageId;
}
public String toString()
{
return foodName;
}
}
<强> activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.shishupalshakya.accessstringvariable.MainActivity">
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
<TextView
android:id="@+id/textView5"
android:layout_below="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
<ImageView
android:id="@+id/imageView3"
android:layout_below="@+id/textView5"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_launcher"
android:onClick="onclickfoodimage"
/>
</RelativeLayout>
注意:不要忘记在AndroidManifest.xml文件中注册FoodActivity.java。
只需用上面的代码替换您的代码。