powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / снова вопрос про андроид ui
8 сообщений из 8, страница 1 из 1
снова вопрос про андроид ui
    #38251201
Юрий321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хочу через include подключить одну и туже кнопку несколько раз в одном activity

читал тут http://developer.android.com/training/improving-layouts/reusing-layouts.html

сделал так:

MainActivity.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
package com.example.inctest;

import android.os.Bundle;
import android.app.Activity;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
        ((Button)findViewById(R.id.button1)).setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast toast = Toast.makeText(getApplicationContext(),
                                "button!",
                                Toast.LENGTH_SHORT);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
            }
        });
        
	}

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

}



activity_main.xml
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
    
    <include
        android:id="@+id/butt1"
        layout="@layout/inc_button" />
    
    <include
        android:id="@+id/butt2"
        layout="@layout/inc_button" />
    
</LinearLayout>



inc_button.xml
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</merge>



запускаю, рендерит правильно, две кнопки.
но тост показывает только по первой кнопке, id/butt1
по второй, id/butt2 onClick не срабатывает.

что я делаю не так?
...
Рейтинг: 0 / 0
снова вопрос про андроид ui
    #38251482
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по-моему ты не понимаешь как работает include, по-другому я твой вопрос объяснить не могу. у тебя две кнопки с одним id, сколько кнопок должен найти метод findById с учетом того, что он возвращает 1 значение? что тебя удивляет в том, что только одна кнопка реагирует на клик?
я сам не пробовал, но возможно сработает так
Код: java
1.
2.
3.
4.
View v=findviewbyid(R.id.butt1);
Button b1=(Button )v.findviewbyid(R.id.button);

... //тоже самое для 2
...
Рейтинг: 0 / 0
снова вопрос про андроид ui
    #38251484
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
з.ы. хотя подозреваю что в варианте с <merge/> первый же вызов findById(R.id.butt1) уже вернет саму кнопку.
...
Рейтинг: 0 / 0
снова вопрос про андроид ui
    #38252744
Юрий321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все, понял я как инклюды работают. вобщем как инлайн функции в С :)
в моем случае проще делать разные кнопки, на которых писать одинаковый текст и пускать одинаковый код.
...
Рейтинг: 0 / 0
снова вопрос про андроид ui
    #38252767
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий321в моем случае проще делать разные кнопки, на которых писать одинаковый текст и пускать одинаковый код.
если вставляется одна кнопка то да, такой финт ушами лишен смысла. инклуд он для некоторого более менее сложного лейаута.
а одинаковые виджеты можно и через стили плодить.
...
Рейтинг: 0 / 0
снова вопрос про андроид ui
    #38252796
Юрий321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaЮрий321в моем случае проще делать разные кнопки, на которых писать одинаковый текст и пускать одинаковый код.
если вставляется одна кнопка то да, такой финт ушами лишен смысла. инклуд он для некоторого более менее сложного лейаута.
а одинаковые виджеты можно и через стили плодить.

а как?

вот у меня показываются разные ээ панели, но у всех у них две одинаковые кнопки, принять и отклонить, код в них по нажатию пускается один и тот-же, у всех панелей.

есть такой способ, не плодить листнеры по количество панелей, а сделать всего два, по количеству кнопок?
...
Рейтинг: 0 / 0
снова вопрос про андроид ui
    #38252858
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<style name="myButton">
        <item name="android:textAppearance">?android:attr/textAppearanceListItemSmall</item>
        <item name="android:gravity">center_vertical</item>
        <item name="android:paddingLeft">?android:attr/listPreferredItemPaddingLeft</item>
        <item name="android:paddingRight">?android:attr/listPreferredItemPaddingRight</item>
        <item name="android:minHeight">?android:attr/listPreferredItemHeight</item>
        <item name="android:onClick">OnButtonClick</item>
    </style>


<Button style="style/mybutton"/>


конкретно с onClick я не пробовал, но не вижу причин почему не будет работать
...
Рейтинг: 0 / 0
снова вопрос про андроид ui
    #38253343
Юрий321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaпример
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<style name="myButton">
        <item name="android:textAppearance">?android:attr/textAppearanceListItemSmall</item>
        <item name="android:gravity">center_vertical</item>
        <item name="android:paddingLeft">?android:attr/listPreferredItemPaddingLeft</item>
        <item name="android:paddingRight">?android:attr/listPreferredItemPaddingRight</item>
        <item name="android:minHeight">?android:attr/listPreferredItemHeight</item>
        <item name="android:onClick">OnButtonClick</item>
    </style>


<Button style="style/mybutton"/>


конкретно с onClick я не пробовал, но не вижу причин почему не будет работать

спасибо! все отлично работает в таком виде

Код: xml
1.
2.
3.
<style name="myButton">
        <item name="android:onClick">OnButtonClick</item>
</style>
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / снова вопрос про андроид ui
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]