2016-04-07 27 views
2

Bunu çalışmak için iki tür kod denedim ve başka bir Etkinliğe geçmek için düğmeye bastığımda bana güç vermeye devam ediyor. Bir Fragmanı kullanıyorum ve bu Fragmanlar kodunda bir düğme var ama işe yaramayacak gibi görünmüyorum.Onclick düğmesi Parçada olay var

import android.content.Intent; 
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.widget.RelativeLayout; 
import android.widget.TextView; 

import com.androidbelieve.activity.LoginActivity; 
import com.androidbelieve.helper.SQLiteHandler; 
import com.androidbelieve.helper.SessionManager; 

import java.util.HashMap; 

public class PrimaryFragment extends Fragment { 

private TextView txtName; 
private Button btnLogout; 

private SQLiteHandler db; 
private SessionManager session; 

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

    RelativeLayout rootView = (RelativeLayout) inflater.inflate(R.layout.primary_layout, container, false); 

    txtName = (TextView) rootView.findViewById(R.id.username); 
    btnLogout = (Button) rootView.findViewById(R.id.logout); 

    // SqLite database handler 
    db = new SQLiteHandler(getActivity().getApplicationContext()); 

    // session manager 
    session = new SessionManager(getActivity().getApplicationContext()); 

    if (!session.isLoggedIn()) { 
     logoutUser(); 
    } 
    // Fetching user details from SQLite 
    HashMap<String, String> user = db.getUserDetails(); 

    String name = user.get("name"); 

    // Displaying the user details on the screen 
    txtName.setText(name); 


    // Logout button click event 
    btnLogout.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      logoutUser(); 
     } 


    }); 

    Button button = (Button) rootView.findViewById(R.id.saleentry); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      updateDetail(); 
     } 
    }); 
    return rootView; 
} 

public void updateDetail() { 
    Intent intent = new Intent(getActivity(), SentFragment.class); 
    startActivity(intent); 
} 

Düğmeyi kullanarak başka bir sayfaya gitmeye çalışıyordum, ancak her zaman başarısız oluyor. 42: 37,285 27777-27777/com.androidbelieve.drawerwithswipetabs> E/AndroidRuntime: ÖLÜMCÜL İSTİSNA: Ana
İşte benim stacktrace..this i

04-07 22 OnClickListener kullanılan sonucudur olduğu İşlem: com.androidbelieve.drawerwithswipetabs, PID: 27777 Tema: temalar: {default = yer paylaşımı: system, iconPack: system, fontPkg: sistem,> com.android.systemui = yer paylaşımı: sistem} android.content.ActivityNotFoundException: Açık> etkinlik sınıfı> {com.androidbelieve.drawerwithswipetabs/com.androidbelieve.drawerwithswipet> abs.SentFragment} bulunamadı; Bu etkinliği> AndroidManifest.xml sayfanızda bildirdiniz mi? android.app.Activity.startActivityForResult de android.app.Instrumentation.execStartActivity (Instrumentation.java:1514) de android.app.Instrumentation.checkStartActivityResult (Instrumentation.java:1801) (Activity.java:3930) de de android.support.v4.app.FragmentActivity.startActivityFromFragment (FragmentActivity.java:849) at android.support.v4.app.FragmentActivity $ HostCallbacks.onStartActivityFromFragment FragmentActivity.java:907) android.support.v4.app.Fragment.startActivity (Fragment.java:916) at com.android şirketinde com.androidbelieve.drawerwithswipetabs.PrimaryFragment $ 2.onClick (PrimaryFragment.java:67) android.view.View.performClick (View.java:5204) en de believe.drawerwithswipetabs.PrimaryFragment.updateDetail (PrimaryFragment.java:75) android.view.View $ PerformClick.run (View.java:21156) at android.os.Handler.handleCallback (Handler.java:739) at android.os.Handler.dispatchMessage (Handler.java:95) android.appl.Looper.loop (Looper.java:148) at android.app.ActivityThread.main (ActivityThread.java:5456) java.lang.reflect.Method.invoke (Yerel Yöntem)adresinde com.android.internal.os.ZygoteInit.main de com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) de(ZygoteInit.java:616) öncelikle sizi

+0

SendFragment.class bir faaliyet veya parça mı tıklamada bu kodu kullanın? Bir parçada 'startActivity' kullanamazsınız. –

+0

fragment @ AlexTownsend – Kumar

+0

Dediğim gibi, "startActivity", sadece aktivitelerle bir parça başlatamazsınız.Bazı seçenekler şunlardır: A) SendFragmentinizi içeren yeni bir aktivite oluşturun ve 'startActivity' veya B'yi kullanarak 'PrimaryFragment'ınızı' SendFragment' ile değiştirerek şu anki etkinliğinizde –

cevap

0

xml düzeninize çerçeve düzeni eklemeniz gerekir.

<FrameLayout 
    android:id="@+id/frame_container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    /> 

sonra

Button button = (Button) rootView.findViewById(R.id.saleentry); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) {   
      Fragment fragment = new SentFragment(); 
      FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
      FragmentTransaction fragmentTransaction =  fragmentManager.beginTransaction(); 
      fragmentTransaction.replace(R.id.content_frame, fragment); 
      fragmentTransaction.remove(new PrimaryFragment()); 
      fragmentTransaction.addToBackStack(null); 
      fragmentTransaction.commit(); 
      } 
     });