2013-07-05 2 views
-3

Я пишу простое приложение в Android и у меня есть эта проблема:Обработка imageButtons

Прежде всего, я использую imageButtons для того, чтобы загружать изображения из XML-файлов, расположенных в моем res/layout каталоге. Дело в том, что я могу обрабатывать их как обычные кнопки на Java? Я имею в виду, где-то где-то экземпляр?

Потому что когда я использую onClickListeners, я хочу, чтобы они вызывали событие при нажатии (загрузите еще один файл .xml в другой файл .java).

И дело еще: Где-то в моем MAinActivity.java у меня есть следующие строки кода:

Button imageButton2 = (Button) findViewById(R.id.imageButton2); 
imageButton2.setOnClickListener(this); 

Что такое именно использование findviewById?

Нужно ли мне делать R.Java и найти идентификатор класса и добавить это поле? Или я могу понять это автоматически?

+5

Меня всегда поражают люди, «напевая» что угодно, даже не пытаясь понять основы того, что они пытаются сделать. RTFM, RTFM! –

+0

Я бы предпочел реальный ответ, а не общие инструкции –

+2

Нет. Вы бы предпочли, чтобы кто-то выполнял вашу работу. Скорее всего, этого не произойдет. Может быть, вы не должны заниматься программированием с таким отношением? –

ответ

1

findViewById() находит «id» так называемого объекта (в данном случае кнопку изображения) и сопоставляет этот XML-код с кодом Java, который вы сейчас просматриваете. Вам нужен XML-файл (а не R.java). Программы обычно имеют файлы XML для представления и структуры из приложения в то время как Java должна быть логика и базы данных.

Когда я впервые запустил запрограммированные приложения для телефона, это тоже сбивало с толку. Однако, как программист, вы хотите всегда изучать свои темы.

Посмотрите на некоторые простые примеры на сайте:

http://www.mkyong.com/android/android-imagebutton-example/

Кроме того, это медленный и стабильный (и очень подробно!) Руководство. Это поможет понять общий дизайн и структуру приложений для телефонов Android.

http://developer.android.com/training/basics/firstapp/index.html

Наконец, чтобы знать, где именно "R" имеет в виду, вы должны увидеть setContentView():

//you should have this method in your program 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    //here is where it decides the exact XML file this Java class refers to. 
    setContentView(R.layout.main); 

    addListenerOnButton(); 

} 

OnCreate(), как правило, где вы хотите установить контекст (контекст означает, какой XML-файл вы имеете в виду). Тогда каждый другой метод в этом классе Java будет знать, что нужно искать в этом XML-файле.

+0

У меня есть много .xml-файлов в моем каталоге макета. В каждом файле я использую те же имена для кнопок. Я просто хочу знать, понимает ли он правильное изображение. Я обращаюсь к файлу .xml, который я использую выше, и если я действительно смогу обработать свой imageButton как кнопку (чтобы щелкнуть и т. Д.) Спасибо. –

+0

Я сделал редактирование, которое, надеюсь, ответит на ваш вопрос. Не забудьте взглянуть на обе мои ссылки. Первый - очень простой и простой пример, поэтому сначала посмотрите на это. –

+0

Хорошо. Нет проблем. Даже если бы я прочитал документацию, возможно, возникло недоразумение. В любом случае, спасибо. –

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