Запуск нової діяльності з фрагмента в Android Studio

я просто хочу відкрити SkipActivity з MondayFragment і невдало помилково. Робота між фрагментами - це робота, але коли я натискаю кнопку "Пропустити", перейдіть до іншого Діяльність - додаток буде розбито (закрито):

Весь відповідний код додається, будь ласка, допоможіть:

        public class MondayFragment extends Fragment {

            final String LOG_TAG="myLogs";
            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                View v=inflater.inflate(R.layout.fragment_monday, container, false);

              TextView txt=(TextView) v.findViewById(R.id.skip);
              txt.setOnClickListener(new View.OnClickListener() {
                  public void onClick(View v) {
                      ((TextView)getActivity().findViewById(R.id.skip)).setText("Access from Monday Fragment");
                      //Start your activity here
                      Intent i = new Intent(getActivity(),SkipActivity.class);
                      startActivity(i);

              }
          });
          return v;

        }

       }

This is java Activity class :

public class SkipActivity extends AppCompatActivity {
    @Override
    protected void onCreate( Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.after_skip_scr);
    }
}

Це клас MainActivity - я думаю, що тут нема чого змінити:

public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

       //Set the content of the activity to use the activity_main.xml layout file
        setContentView(R.layout.activity_main);

       //Find the view pager that will allow the user to swipe between fragments
        ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);

       //Create an adapter that knows which fragment should be shown on each page
        SimpleFragmentPagerAdapter adapter = new SimpleFragmentPagerAdapter(getSupportFragmentManager());

       //Set the adapter onto the view pager
        viewPager.setAdapter(adapter);


    }


}

Нижче наведено файли повторного макета: перший - для понеділкового фрагмента



    


    


І це для основної діяльності:



    


0
Перегляньте трасування стека , щоб визначити причину аварії.
додано Автор Mike M., джерело
Будь ласка, поділіться журналом помилок
додано Автор Priyank, джерело
Ви повинні оголосити свою діяльність у файлі маніфесту.
додано Автор Krishna Sharma, джерело
поділіться своїм logcat
додано Автор Shubham Vala, джерело
Процес: com.example.android.circles_2907, PID: 18494 android.content.ActivityNotFoundException: Неможливо знайти явний клас активності {com.example.android.circles_2907/com.example.android.circle & zwnj; s_2907.SkipActivity} & zwnj; ; ви оголосили цю активність у вашому AndroidManifest.xml?
додано Автор Dima Bokov, джерело
Це помилка logat
додано Автор Dima Bokov, джерело

5 Відповіді

У вашій програмі відбувається збій у події кліків, оскільки ваш перегляд є недійсним, оскільки ви намагаєтеся з'ясувати перегляд, використовуючи activity.findViewById , який, очевидно, поверне нуль.

((TextView)getActivity().findViewById(R.id.skip)).setText("Access from Monday Fragment");

Змінити вище рядка з цим

((TextView)v.findViewById(R.id.skip)).setText("Access from Monday Fragment");

Адже ви запускаєте діяльність з події onClick, тому не має сенсу оновлювати текст пропуску textview. але якщо ви все ще хочете зробити це, немає проблем.

Просто змініть наведений вище рядок коду, він повинен усунути проблему.

As a suggestion in case you want to update the skip textview text in on click event or any other place, create a class level instance say TextView skipTextView and initialize in onCreateView then simply use skipTextView.setTex("")" all over the place where ever required.

0
додано
@DimaBokov будь ласка поділіться аварійним журналом, допоможе нам дізнатися причину
додано Автор Krishna Sharma, джерело
Сподіваємося, ви залишили свою дію SkipActivity у файлі маніфесту, якщо ні, то вам потрібно це зробити.
додано Автор Krishna Sharma, джерело
SetText ("A & zwnj; ccess from Fragment понеділка"); ((TextView) getActivity (). Ця лінія не викликає жодних проблем. Я тільки що поклав його в коментарі на даний момент - лінія не потрібна.
додано Автор Dima Bokov, джерело

можна викликати діяльність за допомогою:

button.setOnClickListener(new View.OnClickListener() {

           @Override
           public void onClick(View arg0) {
              Intent intent = new Intent(getActivity(), Contact_Developer.class);
              getActivity().startActivity(intent);
           }
        });
0
додано
TextView txt = (TextView) v.findViewById (R.id.skip); txt.setOnClickListener (новий View.OnClickListener() {public void onClick (Перегляд v) {@Override Intent intent = new Intent (getActivity (), SkipActivity.class); вона все ще розбилася ....
додано Автор Dima Bokov, джерело

чому ви берете цю лінію

((TextView)getActivity().findViewById(R.id.skip)).setText("Access from Monday Fragment");

і спільний журнал помилок logcat.

або спробуйте це

decalare це

     Context context;

    txt.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View view) {
          Intent intent = new Intent(context, SkipActivity.class);
          context.startActivity(intent);
       }
    });
0
додано
Привіт, tnx для відповіді. Рядок ((TextView) getActivity (). FindViewById (R.id.skip)). не викликає помилок. Я спробував ваше рішення з contex, але він все ще не працює ... :(
додано Автор Dima Bokov, джерело

@Dima, Спробуйте це:

public class MondayFragment extends Fragment implements OnClickListener
{

        final String LOG_TAG="myLogs";
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v=inflater.inflate(R.layout.fragment_monday, container, false);

       //Views
        TextView txt=(TextView) v.findViewById(R.id.skip);
        txt.setOnClickListener(this);

        return v;

        }

   //onClick Method
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.skip:
                ((TextView)getActivity().findViewById(R.id.skip)).setText("Access from Monday Fragment");
                Intent i = new Intent(getActivity(),SkipActivity.class);
                startActivity(i);
                break;
            default:
                break;
        }


    }
}
0
додано

tnx для відповідей! Проблема була - я не оголосив SkipActivity в маніфесті файл.

На даний момент я зробив це - додаток працює, і я можу провести між фрагментами і запустити іншу активність з фрагмента.

tnx багато!

0
додано
ок брат :), удачі.
додано Автор Siros Baghban, джерело
ІТ КПІ - Java
ІТ КПІ - Java
436 учасників

android_jobs_ua
android_jobs_ua
120 учасників

Публикуем вакансии и запросы на поиск работы по направлению Android. Здесь всё: full-time, part-time, remote и разовые подработки.

Mobile Dev Jobs UA
Mobile Dev Jobs UA
20 учасників

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin, RN и т.д.