Связывание XML-страниц с макетом - PullRequest
1 голос
/ 04 ноября 2010

Извините за простоту этого запроса - но есть ли способ для меня связать команды onClick для кнопок через макет, а не код.Я пытаюсь создать простое приложение, и я хочу, чтобы кнопки и переходы с одной «страницы» на другую могли быть сделаны нажатием кнопки.

Есть ли сайт, на котором можно посмотреть, как использовать пользовательский интерфейс для кодированиядля дроида?

Спасибо!

Ответы [ 2 ]

1 голос
/ 16 декабря 2010
  1. Сделайте, сколько кнопок вы бы хотели иметь. Убедитесь, что если он больше, чем размер экрана, вы должны назначить просмотр прокрутки.

предположим, что у вас есть на R.layout.main.xml. Чтобы найти это перейдите на res/layout/main.xml Скопируйте XML, щелкните правой кнопкой мыши и вставьте его в папку макета. Тогда он скажет Rename. Переименуйте его в то, что вы хотите.

Теперь скопируйте это специально, скажем, вы положили

btn1
btn2 
btn3
btn4 
btn5 

Чтобы сделать тег id, перейдите к свойствам каждой кнопки, выделите id и переименуйте окончание в btn1, 2,3, 4 и т. Д.

Теперь, если вы поместите это в файл .java в src/com.whateveryounamed.app/what ever you named .java

Поместите этот код ниже, и он будет работать. Ниже приведен мой пример с 5 кнопками на странице XML.

package com.nashvillekurds.app;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class kurdishhistoryapp extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button btn1 =(Button)findViewById(R.id.btn1);
        Button btn2 =(Button)findViewById(R.id.btn2);
        Button btn3 =(Button)findViewById(R.id.btn3);
        Button btn4 =(Button)findViewById(R.id.btn4);
        Button btn5 =(Button)findViewById(R.id.btn5);

        btn1.setOnClickListener(new Button.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent myIntent = new Intent();

                myIntent.setAction(Intent.ACTION_VIEW);

                myIntent.setData(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                setContentView(R.layout.btn1);

            }
        });

        btn2.setOnClickListener(new Button.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent myIntent = new Intent();

                myIntent.setAction(Intent.ACTION_VIEW);

                myIntent.setData(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                setContentView(R.layout.btn2);

            }
        });


        btn3.setOnClickListener(new Button.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent myIntent = new Intent();

                myIntent.setAction(Intent.ACTION_VIEW);

                myIntent.setData(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                setContentView(R.layout.btn3);

            }
        });


        btn4.setOnClickListener(new Button.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent myIntent = new Intent();

                myIntent.setAction(Intent.ACTION_VIEW);

                myIntent.setData(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                setContentView(R.layout.btn4);

            }
        });


        btn5.setOnClickListener(new Button.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent myIntent = new Intent();

                myIntent.setAction(Intent.ACTION_VIEW);

                myIntent.setData(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                setContentView(R.layout.btn5);

            }
        });


}}

надеюсь, это помогло, если не извините, но вы делаете что-то не так ...

0 голосов
/ 26 апреля 2012

То, что сказал Джеймс Ньютон, включает в себя несколько кнопок. Вот как это происходит с одной кнопкой, просто для ясности:

    Button btn1 =(Button)findViewById(R.id.~btn1~);

btn1.setOnClickListener(new Button.OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent myIntent = new Intent();

        myIntent.setAction(Intent.ACTION_VIEW);

        myIntent.setData(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
        setContentView(R.layout.~btn1~);

    }        
    });

Кроме того, ничего не нужно менять, просто измените идентификатор кнопки и идентификатор XML для работы с вашим приложением. Кнопка btn предназначена только для того, чтобы пометить ее в системе, поэтому вы должны сохранить ее, и btn1.setOnClickListener ... также можно сохранить. Просто измените части внутри ~. Не забудьте изменить ~ тоже! Я, вероятно, не обошелся бы без предупреждения, а некоторые другие тоже не смогли бы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...