2014-01-27 2 views
0

Я пытаюсь отобразить tilemap, но когда я запускаю мое приложение, нет ничего на экране: сAndroid ошибка tilemap

public class MainActivity extends Activity { 

LinearLayout tileMap; 
int width, height = 1; 

int[][] map = { 
     {0,0,0,0,0}, 
     {0,0,0,0,0}, 
     {0,0,0,0,0}, 
     {0,0,0,0,0}, 
     {0,0,0,0,0}}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    tileMap = new LinearLayout(this); 
    generate(tileMap, this); 
    setContentView(tileMap); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

void generate(LinearLayout tileMap, Context context) { 

    for(int y = 0; y < height; y++) { 
     for(int x = 0 ; x < width; x++) { 
      ImageView tile = new ImageView(context); 
      tile.setImageResource(R.drawable.wall); 
      tileMap.addView(tile); 
     } 
    } 
} 
} 

Не могли бы вы сказать мне, что случилось с моим кодом? Я уверен, что проблема внутри функции генерации ... Я уже пытался сделать массив ImageView, но он тоже не работал! Спасибо :)

ответ

0

Проблема в том, здесь:

int width, height = 1; 

Вы думаете, что ширина инициализирован в 1, но нет. На самом деле, он не был инициализирован и значение по умолчанию для int 0.

Поэтому for(int x = 0 ; x < width; x++) { никогда не будет работать, так как x < width никогда не оценивается в true.

Так как инициализировать:

int width = 1; 
int height = 1;