2016-04-27 4 views
-7

Это моя активность в социальных фрагментах и ​​содержит представление кнопок. когда я нажимаю на него, я хочу переключиться с одного действия на другое, но когда я его приветствую по телефону и нажимаю на кнопку, он говорит «к сожалению приложение остановлено», что я должен сделать, чтобы переключиться с одного фрагмента на другой фрагмент. это мой социальный фрагмент код: SocialFragActivityNotFoundException, error, начинающийся с активности

и я хочу переключиться с социального фрагмента на фрагмент TechGadget на кнопку click.

Вот Вход кот Log Cat

мое приложение содержит панель навигации с tabhlayout и я объявил кнопки на одной вкладке ... в то время как я хочу, чтобы открыть новый вид деятельности, когда кнопка получает щелчок.

**@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.social_layout,container,false); 
     b = (Button) rootView.findViewById(R.id.button2); 
     b.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(getActivity().getApplicationContext(),TechGadgets.class); 
       startActivity(i); 
      } 
     }); 
     return rootView; 
    } 
}** 

это reutrns ошибка и здесь необходимо войти кошке

04-28 01:07:07.300 17089-17089/com.example.android.techfnss E/AndroidRuntime: FATAL EXCEPTION: main 
                       Process: com.example.android.techfnss, PID: 17089 
                       android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.android.techfnss/com.example.android.techfnss.TechGadgets}; have you declared this activity in your AndroidManifest.xml? 
                        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1885) 
                        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1579) 
                        at android.app.Activity.startActivityForResult(Activity.java:3934) 
                        at android.app.Activity.startActivityForResult(Activity.java:3894) 
                        at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:849) 
                        at android.support.v4.app.FragmentActivity$HostCallbacks.onStartActivityFromFragment(FragmentActivity.java:907) 
                        at android.support.v4.app.Fragment.startActivity(Fragment.java:916) 
                        at com.example.android.techfnss.SocialFragment$1.onClick(SocialFragment.java:26) 
                        at android.view.View.performClick(View.java:5207) 
                        at android.view.View$PerformClick.run(View.java:21168) 
                        at android.os.Handler.handleCallback(Handler.java:746) 
                        at android.os.Handler.dispatchMessage(Handler.java:95) 
                        at android.os.Looper.loop(Looper.java:148) 
                        at android.app.ActivityThread.main(ActivityThread.java:5443) 
                        at java.lang.reflect.Method.invoke(Native Method) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
04-28 01:07:10.275 17089-17089/com.example.android.techfnss I/Process: Sending signal. PID: 17089 SIG: 9 
+0

вывесить журнал кота пожалуйста –

+0

и код, который вы реализуете для запуска 2-го Activ ity –

+2

Этот вопрос задавался несколько раз.Вам необходимо обновить свой вопрос с помощью вывода LogCat. Скорее всего, вы не добавили свою активность в манифест или что-то подобное (убедитесь, что 'TechGadgets' - это Activity). Кроме того, используйте текущий контекст Activity при создании контекста Intent, а не приложения. Изменить: похоже, TechGadget может быть фрагментом. Переключение между фрагментами осуществляется иначе, чем «Действия», просмотр их документации: http://developer.android.com/guide/components/fragments.html – chRyNaN

ответ

0

Этот вопрос был задан в десятки раз (по крайней мере), так что вы могли бы нашли ответ на поиск Google. Тем не менее, вот как вы это делаете ...

Button button = (Button) findViewById(R.id.my_button); 
button.setOnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Intent intent = new Intent(MainActivity.this, SecondActivity.class); 
     startActivity(intent); 
    } 
}; 

Конечно, вы замените соответствующие значения соответствующими в своем коде.

Если вы ищете более конкретный ответ, задайте более конкретный вопрос (с доказательствами, что вы провели исследование, чтобы найти ответ самостоятельно или даже хотя бы трассировку журнала из аварии, которую вы получаете).

+0

Это не работает, так как я использую SocialFrag в макете вкладок. – Nikhil

+0

@ Никиль Окей. В этом случае ** отправьте свой код **, чтобы мы могли видеть, где именно ваша проблема. –

0

использовать этот код -

Intent intent = new Intent(MainActivity.this, OtherActivity.class); 
startActivity(intent); 

здесь, OtherActivity.class это имя деятельности, которую вы хотите идти, и Mainactivity.this ваша текущая деятельность.

0

Вам нужно добавить setOnClickListener на кнопке внутри onViewCreated метода, как это -

public void onViewCreated(View view, Bundle savedInstanceState){ 
    b = (Button)view.findViewById(R.id.button2); 
    b.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent intent = new Intent(getContext(), 2nd_Activity.class); 
      startActivity(intent); 
     } 
    }); 
} 

Надеется, что это помогает!

0

Вы можете передать контекст в Фрагмент при его создании, а затем ссылаться на него. Или вы можете просто использовать getActivity() вместо getActivity().getApplicationContext(), но первый вариант является лучшим, потому что иногда getActivity() просто не работает. Всегда передавайте контекст фрагменту.

0

Очевидно, это говорит о том, что деятельность не объявлена ​​в манифесте, вместо того, чтобы продлить фрагмент, распространяется на любой вид деятельности и добавьте эту строку в манифесте внутри <aplication> </aplication> тела:

<activity android:name=".TechGadgets"></activity> 

Пример:

<aplication> 
... 

<activity android:name=".TechGadgets"></activity> 

... 
</application> 

и закрыть это спросить, пожалуйста,

Смежные вопросы