我正忙着用 java 和 xml 制作一个 android 应用程序。这是一种益智游戏,有点类似于数独。
所以我有一个 ScrollView ,里面有一个表格布局。我的表行比此代码中的多,但也没有必要显示它们。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/wallpaper"
>
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="*"
>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="fill_parent"
android:minHeight="50dp"
android:background="@drawable/cell_shape"
>
<TextView
android:textColor="@color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/game1"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_gravity="center"
/>
<TextView
android:textColor="@color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/yes"
android:layout_gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="fill_parent"
android:minHeight="50dp"
android:background="@drawable/cell_shape"
>
<TextView
android:textColor="@color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/game2"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_gravity="center"
/>
<TextView
android:textColor="@color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/yes"
android:layout_gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
</TableRow>
</TableLayout>
</ScrollView>
如果我单击表格行,我会使用此代码进入其他 Activity 。
TableRow game1 = (TableRow) findViewById(R.id.tableRow1);
game1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = new Intent(view.getContext(), Game1.class);
startActivityForResult(myIntent, 0);
}
});
TableRow game2 = (TableRow) findViewById(R.id.tableRow2);
game2.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = new Intent(view.getContext(), Game2.class);
startActivityForResult(myIntent, 0);
}
});
现在我为每个游戏都有一个其他 Activity ,但游戏之间的唯一区别是一些数组。 所以我想做的是,当我单击 TableRow 时,我想更改其他 java 文件中某些数组的值。因此,我不必为每个游戏创建一个 Activity ,而只需为一个具有变化值的 Activity 。
对于 game1,我想在 games.java 文件中设置这些数组:
int firstrow[] = { 2, 1, 2, 0} ;
int secondrow[] = { 2, 2, 1, 2} ;
int thirdrow[] = { 2, 0, 0, 2} ;
int fourthrow[] = { 1, 2, 2, 2} ;
int firstrowanswer[] = { 0, 1, 1, 0} ;
int secondrowanswer[] = { 0, 0, 1, 1} ;
int thirdrowanswer [] = { 1, 0, 0, 1} ;
int fourthrowanswer[] = { 1, 1, 0, 0} ;
以游戏2为例
int firstrow[] = { 2, 0, 2, 1} ;
int secondrow[] = { 2, 0, 2, 2} ;
int thirdrow[] = { 0, 2, 2, 1} ;
int fourthrow[] = { 0, 2, 2, 2} ;
int firstrowanswer[] = { 1, 0, 0, 1} ;
int secondrowanswer[] = { 1, 0, 1, 0} ;
int thirdrowanswer [] = { 0, 1, 0, 1} ;
int fourthrowanswer[] = { 0, 1, 1, 0} ;
如何通过单击表格行来设置其他文件中数组的值?
最佳答案
为什么不将这些数组作为 Intent extra 传递?
Intent gameActivity = new Intent(this, GameActivity.class);
gameActivity.putExtra("firstRow", arrayForFirstRow);
gameActivity.putExtra("secondRow", arrayForSecondRow);
...
startActivity(gameActivity);
关于java - OnClick在其他JAVA文件Android中加载数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21659507/