我想在我的ObjectsClass中的level1.xml中獲取我的imageviews的id,並且我已經在GamePlayActivity中誇大了這個佈局...我的ObjectClass不是活動,那麼如何獲取該類中的id數組...這裏是我level.xml說,有15 ImageView的我已經展示幾個....如何在int數組中獲得R.id's?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/gmw_01"
android:onClick="onClick"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/relativeLayout1" >
<ImageView
android:onClick="objectClick"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/imageView1"
android:src="@drawable/bb01"
android:layout_marginLeft="998dp"
android:layout_marginTop="593dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"/>
<ImageView
android:onClick="objectClick"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/imageView2"
android:src="@drawable/bb02"
android:layout_marginLeft="20dp"
android:layout_marginTop="39dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"/>
<ImageView
android:onClick="objectClick"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/imageView3"
android:src="@drawable/bb03"
android:layout_marginLeft="497dp"
android:layout_marginTop="153dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"/>
,這裏是我的GameplayActivity
public class GamePlayActivity extends Activity {
static int ObjectsFound;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gameplay);
// ViewGroup where n number of view is going to added
ViewGroup layout= (ViewGroup) findViewById(R.id.GamePlayScreen);
// inflating the layout depending on the level
View level = View.inflate(this, LevelSelectionActivity.levelscreen, null);
** getRandom(); // here I want to call that random because this should be done before my level is added on the view**
// adding level bg for the respective selected level
layout.addView(level);
}
public void objectClick(View objectClicked)
{
Toast msg;
int Object = objectClicked.getId();
ImageView img= (ImageView)findViewById(objectClicked.getId());
switch (Object) {
case R.id.imageView1:
img.setVisibility(View.INVISIBLE);
msg = Toast.makeText(GamePlayActivity.this, "Bubble Found", Toast.LENGTH_SHORT);
msg.setGravity(Gravity.CENTER, msg.getXOffset()/2, msg.getYOffset()/2);
msg.show();
break;
}
}
和對象類
public class Objects {
int ObectId[];
Objects(Context context)
{
super();
for(int i=0;i<15;++i)
{
**ObectId[i]=R.id.;** // what to get it over here ? ? ?
}
}
public void randomize() {
Random generator = new Random();
for(int i = 0; i<8 ; i++) {
while(true) {
**View v = findViewById(generator.nextInt(Objectid.length));**
if(!v.isClickable()) {
v.setClickable(false);
break;
}
}
}
}
}
最後我希望隨機數量的對象是不可點擊的,即每15個對象中,每次用戶只能在屏幕上點擊8個對象,所以在我的級別開始之前,即在我膨脹在我的gameplayActivity之前,我看到上面我想要隨機8點擊,反之亦然...
此外,它應該適用於所有級別...現在我有一個level1.xml如何實現它的所有級別...我需要給同一個ID的所有佈局的圖像視圖?
耶,但我應該如何在陣列 檢索imageIds看過來ObectId [I] = R.id.imageview [I];這會工作嗎? – user1201239 2012-02-24 05:21:44
不,你應該是ImageView imgview = currentLayout.findViewById(R.id.imageview1); – Cytown 2012-02-24 11:22:55