Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Yranchik
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 9
#1

Клик по виджету - Программирование Android

09.11.2015, 18:51. Просмотров 313. Ответов 7
Метки нет (Все метки)

Здравствуйте господа форумчане!)помогите пожалуйста новичку!)Мне нужно, чтобы при клике по виджету открывался основной layout...буду очень признателен за любую помощь!)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2015, 18:51     Клик по виджету
Посмотрите здесь:

Вызов Activity на клик по виджету - Программирование Android
Собственно, начитался статей, и написал вот это: public void onUpdate(Context context, AppWidgetManager appWidgetManager, int...

Доступ к виджету фрагмента - Программирование Android
Пытаюсь добавить фрагмент в контейнер и получить доступ к его кнопке frag1 = new Fragment1(); getSupportFragmentManager() ...

Обработать клик по компоненту - Программирование Android
Здравствуйте. Стоит такая задача, необходимо сгенерировать круг на экране, и в случае нажатия на него выполнить определенные действия, то...

Прослушать на клик LinearLayout - Программирование Android
Здраствуйте, у меня есть LinearLayout со своими компонентами внутри... я ево несколько раз добавляю в активити, тойсть делаю список... как...

Клик по айтему элемента ListView - Программирование Android
Добрый день товарищи. Есть необходимость отследить нажатие на элемент элемента ListView, извиняюсь за тавтологию. Вот пока лишь...

Клик по кнопке в элементе listView - Программирование Android
Доброго времени суток. Пишу свое первое приложение под андроид. На данный момент получаю листвью, в каждом поле которого отображаются 4...

Не обрабатывается клик по позиции ListView - Программирование Android
Создан листвью через симпладаптер. В основе лежит лайот с двумя текстовыми полями. Кликаю по позиции в списке, а идешка кликнутой позиции...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VladimirFA51
7 / 2 / 1
Регистрация: 07.11.2015
Сообщений: 17
09.11.2015, 19:23     Клик по виджету #2
Android studio?Если да,то необходимо зайти в основной xml файл(main_activity.xml).Там создать любой элемент,поставить "clickable", установить метод onClick на название метода,к примеру "onClick".
Получится что-то вроде этого:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
 
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/menu"
        android:src="@drawable/menu"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginRight="27dp"
        android:layout_marginEnd="27dp"
        android:layout_marginTop="28dp"
        android:clickable="true"
        android:onClick="onClick" />
</RelativeLayout>
Прописываем данный метод в главном классе.
Java
1
2
3
4
public void onClick(View v){
Intent transition = new Intent(this,Secondactivity.class);
startActivity(transition);
        }
Создаём класс,название которого , к примеру, Secondactivity.class.
Там прописываем:
Java
1
2
3
4
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.названиеxml(без ".xml" в конце);
}
Не забываем добавить в Manifest строчку:
XML
1
        <activity android:name=".Secondactivity"></activity>
Yranchik
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 9
09.11.2015, 19:57  [ТС]     Клик по виджету #3
VladimirFA51, спасибо!) но при нажатии на виджет пишет "В приложении Launcher произошла ошибка"....
VladimirFA51
7 / 2 / 1
Регистрация: 07.11.2015
Сообщений: 17
09.11.2015, 20:14     Клик по виджету #4
Напиши полный код данных файлов:
Secondactivity.class,
main_activity.xml,
Manifest,
second_activity.xml (Второй экран)

Добавлено через 10 минут
При создании класса "Secondactivity.class" не было добавлено "extends Activity",мб из-за этого
Yranchik
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 9
09.11.2015, 20:21  [ТС]     Клик по виджету #5
VladimirFA51, нет с этим всё в норме)
VladimirFA51
7 / 2 / 1
Регистрация: 07.11.2015
Сообщений: 17
09.11.2015, 20:22     Клик по виджету #6
Полный код скинь...
Yranchik
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 9
09.11.2015, 20:29  [ТС]     Клик по виджету #7
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import android.app.Activity;
import android.os.Bundle;
 
/**
 * Created by user on 09.11.2015.
 */
public class Creatable extends Activity{
 
 
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
}
Добавлено через 1 минуту
VladimirFA51,
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import android.app.Activity;
import android.appwidget.AppWidgetManager;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
 
public class ConfigActivity extends Activity implements View.OnClickListener {
 
    int widgetID = AppWidgetManager.INVALID_APPWIDGET_ID;
    Intent resultValue;
    TextView tv;
 
    final String LOG_TAG = "myLogs";
 
    public final static String WIDGET_PREF = "widget_pref";
    public final static String WIDGET_TEXT = "widget_text_";
    public final static String WIDGET_COLOR = "widget_color_";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(LOG_TAG, "onCreate config");
 
        // извлекаем ID конфигурируемого виджета
        Intent intent = getIntent();
        Bundle extras = intent.getExtras();
        if (extras != null) {
            widgetID = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,
                    AppWidgetManager.INVALID_APPWIDGET_ID);
        }
        // и проверяем его корректность
        if (widgetID == AppWidgetManager.INVALID_APPWIDGET_ID) {
            finish();
        }
 
        // формируем intent ответа
        resultValue = new Intent();
        resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetID);
 
        // отрицательный ответ
        setResult(RESULT_CANCELED, resultValue);
}
 
 
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(this,Creatable.class);
        startActivity(intent);
    }
}
Добавлено через 49 секунд
VladimirFA51, тут пока всё норм?)

Добавлено через 2 минуты
VladimirFA51,
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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.yranchik.grad" >
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="LOL"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="Дни до лета" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver
            android:name=".provider"
            android:icon="@android:drawable/star_big_on"
            android:label="widget">
            <intent-filter>
                <action
                    android:name="android.appwidget.action.APPWIDGET_UPDATE">
                </action>
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/provider_info">
            </meta-data>
        </receiver>
        <activity android:name=".Creatable"></activity>
    </application>
 
</manifest>
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2015, 22:24     Клик по виджету
Еще ссылки по теме:

Не получается обработать долгий клик по TextView - Программирование Android
Здравствуйте! Помогите понять/найти ошибку, пожалуйста! Не могу создать переменную типа TextView...

Мягкий лонг-клик по кнопке с таймером - Программирование Android
Гуру, подскажите. Есть ли ПРОСТОЕ и готовое решение для такого?? Есть: Обычная Button увеличивает параметр/счетчик на +1. ...

Обратиться к виджету по имени - C++ Qt
нашёл в интернете что это делается как то так: QObject *find-&gt;findChild&lt;QObject*&gt;(&quot;Button&quot;); и сразу ошибка expected initializer before...

Симуляция клика мыши по виджету - C++ Qt
Есть форма, на ней кнопка, нужно симулировать нажатие левой кнопкой мыши на нее. Ниже код, не работает, просто ничего не...

Передача события другому виджету - C++ Qt
Есть фрейм, который после отображения захватывает управления мышью (grabMouse()) и создаеться другой виджет на которой есть кнопки, нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
VladimirFA51
7 / 2 / 1
Регистрация: 07.11.2015
Сообщений: 17
09.11.2015, 22:24     Клик по виджету #8
Если нужен переход,то вот.Зачем настолько всё было усложнено? =)
ConfigActivity:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class ConfigActivity extends Activity  {
 
    
 
    final String LOG_TAG = "myLogs";
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
        Log.d(LOG_TAG, "onCreate config");
 
    }
 
}
Creatable:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
    public void onClick(View v) {
        Intent intent = new Intent(this,ConfigActivity.class);
        startActivity(intent);
    }
 
}
activity_main.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="77dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:onClick="onClick" />
</RelativeLayout>
second.xml
XML
1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
 
</LinearLayout>
Добавлено через 20 минут
(Если я правильно понял автора,просто я не увидел здесь класс виджета(Типа календарь,часы и т.д),разумно предположить,что код выдран откуда-то,а под виджетами имелось ввиду что-то типа "TextView","ImageView" и т.д,если же нет,то пардон )
Yandex
Объявления
09.11.2015, 22:24     Клик по виджету
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru