Не удается разрешить символ «Кнопка» при попытке отправить пользователя по внешней ссылке

новичок здесь в коде android / java ... полностью ожидайте отрицательных голосов. но, надеюсь, какой-нибудь другой чувак сможет легко найти это, и ему не придется спрашивать, в чем проблема.

Попытка получить кнопку при нажатии, чтобы отправить пользователя на внешний веб-сайт

public class MessagesFragment extends Fragment {

public MessagesFragment() {
    // Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    Button button = (Button)findViewById(R.id.button);

    button.setOnClickListener(new OnClickListener() {
        public void onClick(View arg0) {
            Intent viewIntent =
                    new Intent("android.intent.action.VIEW",
                            Uri.parse("http://www.stackoverflow.com/"));
            startActivity(viewIntent);
        }
    });

    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_messages, container, false);

}

}

Кнопка, (Кнопка) findViewById, setOnClickListener, OnClickListener (), Намерение, Намерение, Uri. у всех есть ошибки -_-

Вот xml

<?xml version = "1.0" encoding = "utf-8"?>
<FrameLayout 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:background = "#67ffae"
tools:context = ".MessagesFragment">

<!-- TODO: Update blank fragment layout -->
<TextView
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    android:layout_gravity = "center"
    android:gravity = "center"
    android:textColor = "@android:color/white"
    android:textSize = "20sp"
    android:textStyle = "bold"
    android:text = "Messages Fragment" />

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

</FrameLayout>

lalalalalalalalalalalalalalalalalalalalala Я знаю, что это в основном код, который мы обсуждаем переполнение стека.

Есть ли у вас операторы import в верхней части класса для android.widget.Button, android.content.Intent, android.net.Uri и т. д.?

Mike M. 24.06.2018 06:20

да, теперь я делаю единственную ошибку с findViewById

user9560225 24.06.2018 06:25

и onclicklistener

user9560225 24.06.2018 06:26
OnClickListener - это еще один import: import android.view.View.OnClickListener;. Нажмите ctrl + alt + O, я думаю, что это так, и он должен делать это полуавтоматически. Взгляните на этот ответ, чтобы узнать, как использовать findViewById() в методе FragmentonCreateView().
Mike M. 24.06.2018 06:30

Я не уверен, как findViewById () относится к моему. Спасибо за помощь!

user9560225 24.06.2018 06:33
Fragment не имеет метода findViewById(). Вы должны сначала подключить inflate() к View и вызвать findViewById(), как показано в этом ответе.
Mike M. 24.06.2018 06:35

getView (). вызывает сбой приложения, и onCreateView () не запускается

user9560225 24.06.2018 06:36

Вы смотрите не на ту. Следуйте ответу, который я связал напрямую: stackoverflow.com/a/6496013.

Mike M. 24.06.2018 06:37

Просмотр view = inflater.inflate (R.layout.fragment_messages, container, false); Кнопка button = (Кнопка) view.findViewById (R.id.button); button.setOnClickListener (новый OnClickListener () {public void onClick (View arg0) {Intent viewIntent = new Intent ("android.intent.action.VIEW", Uri.parse ("stackoverflow.com/ ")); startActivity (viewIntent);

user9560225 24.06.2018 06:40

Да, извините, я не видел обновленное вами сообщение. кнопка сейчас ничего не делает, но ошибок нет

user9560225 24.06.2018 06:40

Обратите внимание на заявление return там: return view;.

Mike M. 24.06.2018 06:40

неожиданное возвращаемое значение

user9560225 24.06.2018 06:44

Вам нужно изменить свой оператор return inflater.inflate(...); на это. Не пытайтесь добавить это где-нибудь еще.

Mike M. 24.06.2018 06:45

Разве это не нарушит вид навигации, который я настроил?

user9560225 24.06.2018 06:46

нет, это не спасибо за вашу помощь!

user9560225 24.06.2018 06:48

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

Mike M. 24.06.2018 06:48

Не могли бы вы вставить следующий код, чтобы я мог отдать вам должное за ответ

user9560225 24.06.2018 06:49

import android.content.DialogInterface; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.content.Intent; import android.net.Uri; import android.view.View.OnClickListener; import android.widget.ImageView; / ** * Простой подкласс {@link Fragment}. * /

user9560225 24.06.2018 06:49

открытый класс MessagesFragment расширяет фрагмент {

user9560225 24.06.2018 06:50

public MessagesFragment () {// Обязательный пустой общедоступный конструктор} @Override public View onCreateView (LayoutInflater inflater, контейнер ViewGroup, Bundle savedInstanceState) {View view = inflater.inflate (R.layout.fragment_messages, container, false); Кнопка button = (Кнопка) view.findViewById (R.id.button);

user9560225 24.06.2018 06:50

button.setOnClickListener (new OnClickListener () {public void onClick (View arg0) {Intent viewIntent = new Intent ("android.intent.action.VIEW", Uri.parse ("stackoverflow.com/ ")); startActivity (viewIntent);}}) ; // Раздуваем макет для этого фрагмента return view;}}

user9560225 24.06.2018 06:50

О, я в порядке. Спасибо хоть. Это как бы превратилось в небольшое учебное занятие, охватывающее несколько вещей, которые мы действительно не должны делать. Не стесняйтесь, если хотите, сами отправьте ответ. Рад, что у тебя все получилось. Ваше здоровье!

Mike M. 24.06.2018 06:54
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
22
853
1

Ответы 1

В коде все правильно просто поменяй

Intent viewIntent= new Intent("android.content.Intent.action.VIEW",
                           Uri.parse("http://www.stackoverflow.com/"));
startActivity(viewIntent);

Надеюсь, это сработает

Другие вопросы по теме