2015-11-26 3 views
0

Извините, если это действительно основной вопрос, но это один из тех случаев, когда я просто искал всюду в течение нескольких часов без везения ... Итак, я делаю кнопку со своим собственным классом Button, и я сделал это принять в параметре изображения:Как использовать мой ImageView?

public class Button{ 
    int xPos; 
    int yPos; 
    int width; 
    int height; 
    String name; 

    // Constructor 
    public Button(int x, int y, int w, int h, String n, ImageView t) 
    { 
     xPos = x; 
     yPos = y; 
     width = w; 
     height = h; 
     name = n; 
    } 
} 

Теперь я называю это путем создания его объекта (в то время как положить его в ArrayList кнопок), как это:

greenView = (ImageView) findViewById(R.id.greencircle); 
greenView.setImageBitmap(BitmapFactory.decodeFile("@drawable/bluecircle")); 

blueView = (ImageView) findViewById(R.id.bluecircle); 
blueView.setImageBitmap(BitmapFactory.decodeFile("@drawable/bluecircle")); 




ArrayList<Button> buttons = new ArrayList<Button>(); 
buttons.add(new Button(85, 184, 100, 100, "greencircle", greenView)); 
buttons.add(new Button(185, 184, 100, 100, "bluecircle", blueView)); 

Теперь проблема, я по какой-то причине я не могу сделать findViewById. Он утверждает, что greencircle не разрешен, и ни один из них не является bluecircle. Теперь, я делаю эти изображения полностью программно, с никакого макета.

Я видел ответ на этот вопрос:

How to show image using ImageView in Android

Где мой метод должен работали. По какой-то причине я не могу разрешить идентификатор. Что мне делать?

Спасибо так много,

Ruchir

+0

Если вы создали программные кнопки, 'findViewById()' wont work. –

+0

@LaneSurface Что следует использовать вместо этого для создания моего объекта просмотра изображений? –

+0

Хмм, не проработал какое-то программирование на Android, но я знаю, что 'findViewById()' предназначен для поиска видов, зарегистрированных в вашем файле макета XML. –

ответ

0

Ваша кнопка не будет работать. вам нужно импортировать андроидную кнопку, которая является подклассом Viewgroup.

import android.widget.Button; 


Button b = new Button(this); 
    b.setText("Button added dynamically!"); 
    b.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    b.setId(MY_BUTTON); 
    b.setOnClickListener(this); 

ArrayList<Button> buttons = new ArrayList<Button>(); 
buttons.add(b); 
+0

Смотрите, я пробовал это раньше, но столкнулся с этой проблемой. Ответ на странице и комментарии к ответу объясняют это: http://gamedev.stackexchange.com/questions/111969/swap-buttons-in-layout/111970#111970 –

0

Ваша программа не будет работать, пока вы не установите идентификатор кнопки. Поскольку вы не используете макет xml, вы можете установить id в программе. Вы можете вручную установить id на yourView.setId(); Надеюсь, что это поможет

Смежные вопросы