Новое для Android и наличие некоторых проблем с передачей данных из вида деятельности в представление. У меня есть простой метод onCreate для Android для моей активности.Android: передать значение для просмотра после setContentView
public class MyActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
int num = intent.getIntExtra(MainActivity.EXTRA_NUM, 0);
setContentView(R.layout.play_game); //this is a MyView class inside of a LinearLayout
//where I want to pass the value of num to MyView
MyView myView = (MyView) findViewById(R.id.myview);
myView.setNum(num);
}
}
public class MyView extends View {
protected int num;
protected int[] array;
public MyView(Context context) {
super(context);
init();
}
public MyView(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
init();
}
protected void init() {
setBackgroundResource(R.drawable.pic1);
array = new int[num];
}
public void setNum(int num) {
this.num = num;
}
}
Однако я не могу понять, как передать значение классу MyView (он расширяет представление). Я просто хочу отправить целочисленное значение, которое класс представления получит до запуска конструктора.
Где находится класс MyView? –
только что отредактировал его в – thehandyman
Если вы не хотите добавлять сеттер к своему представлению, вы можете получить это значение из намерения прямо из вашего представления. В вашем пользовательском представлении используйте контекст int num = ((Activity)) .getIntent(). GetIntExtra (MainActivity.EXTRA_NUM, 0); ' – ugo