Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / снова вопрос про андроид ui / 8 сообщений из 8, страница 1 из 1
08.05.2013, 08:50:01
    #38251201
Юрий321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
снова вопрос про андроид ui
хочу через 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
08.05.2013, 11:38:40
    #38251482
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
снова вопрос про андроид ui
по-моему ты не понимаешь как работает 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
08.05.2013, 11:39:59
    #38251484
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
снова вопрос про андроид ui
з.ы. хотя подозреваю что в варианте с <merge/> первый же вызов findById(R.id.butt1) уже вернет саму кнопку.
...
Рейтинг: 0 / 0
09.05.2013, 17:29:41
    #38252744
Юрий321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
снова вопрос про андроид ui
все, понял я как инклюды работают. вобщем как инлайн функции в С :)
в моем случае проще делать разные кнопки, на которых писать одинаковый текст и пускать одинаковый код.
...
Рейтинг: 0 / 0
09.05.2013, 18:38:44
    #38252767
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
снова вопрос про андроид ui
Юрий321в моем случае проще делать разные кнопки, на которых писать одинаковый текст и пускать одинаковый код.
если вставляется одна кнопка то да, такой финт ушами лишен смысла. инклуд он для некоторого более менее сложного лейаута.
а одинаковые виджеты можно и через стили плодить.
...
Рейтинг: 0 / 0
09.05.2013, 19:41:10
    #38252796
Юрий321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
снова вопрос про андроид ui
chpashaЮрий321в моем случае проще делать разные кнопки, на которых писать одинаковый текст и пускать одинаковый код.
если вставляется одна кнопка то да, такой финт ушами лишен смысла. инклуд он для некоторого более менее сложного лейаута.
а одинаковые виджеты можно и через стили плодить.

а как?

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

есть такой способ, не плодить листнеры по количество панелей, а сделать всего два, по количеству кнопок?
...
Рейтинг: 0 / 0
09.05.2013, 21:19:08
    #38252858
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
снова вопрос про андроид ui
пример
Код: 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
10.05.2013, 20:15:43
    #38253343
Юрий321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
снова вопрос про андроид ui
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
Форумы / Java [игнор отключен] [закрыт для гостей] / снова вопрос про андроид ui / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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