0

我是新來的,但我已經做了一個小應用程序,以同樣的方式工作。 我看不到我做錯了什麼,因爲代碼看起來像我以前的應用程序一樣安靜。xml佈局加載,但我的活動沒有響應按鈕點擊

當我運行或調試我的應用程序它顯示在我的模擬器我的佈局,它加載必須加載的頁面,但是這一切都這樣做,不聽按鈕點擊。我也沒有給我錯誤。

下面是fragment_main.xml我的XML代碼

<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$PlaceholderFragment"> 

<TextView 
     android:text="Eventaris" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:textSize="100px" 
     android:textStyle="bold" 
     android:id="@+id/lblEventaris" 
     /> 

    <LinearLayout 
     android:layout_width="500px" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true" 
     android:orientation="vertical" 
     android:id="@+id/login"> 


    <EditText 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="Gebruikersnaam" 
     android:id="@+id/txtGebruikersnaam"/> 

    <EditText 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="Wachtwoord" 
     android:inputType="textPassword" 
     android:layout_below="@id/txtGebruikersnaam" 
     android:id="@+id/txtWachtwoord"/> 

    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Inloggen" 
     android:id="@+id/btnInloggen" 
     android:layout_below="@id/txtWachtwoord"/> 

    </LinearLayout> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:gravity="center" 
     android:layout_below="@id/login"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="nog geen account?" 
     android:gravity="center" 
     android:id="@+id/lblRegistratie"/> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Registeren" 
      android:id="@+id/btnRegistreren" 
      android:layout_below="@id/lblRegistratie"/> 
     </RelativeLayout> 

</RelativeLayout> 

這裏是我的fragmennt活動MainFragment.Java

package com.example.arno.eventaris; 

import android.app.Activity; 
import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.EditText; 

import java.sql.SQLException; 

/** 
* Created by Arno on 28/04/2015. 
*/ 
public class MainFragment extends Fragment { 

    private OnMainFragmentInteractionListener mListener; 
    private View view; 

    public MainFragment() 
    { 
     //required empty public constructor 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     view=inflater.inflate(R.layout.fragment_main, container, false); 
     Button btnInloggen = (Button) view.findViewById(R.id.btnInloggen); 
     btnInloggen.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       try { 
        inloggen(); 
       } catch (SQLException e) { 
        e.printStackTrace(); 
       } 
      } 

     }); 
     Button btnRegistreren = (Button) view.findViewById(R.id.btnRegistreren); 
     btnRegistreren.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v){ 
       navigeerRegistratie(); 
      } 
     }); 
     return view; 
    } 

    @Override 
    public void onAttach(Activity activity) 
    { 
     super.onAttach(activity); 
     try{ 
      mListener = (OnMainFragmentInteractionListener) activity; 

     } 
     catch (ClassCastException e) 
     { 
      throw new ClassCastException(activity.toString() + "must implement OnFragmentInteractionListener"); 
     } 
    } 

    public void inloggen() throws SQLException { 
     EditText gebr=(EditText) view.findViewById(R.id.txtGebruikersnaam); 
     EditText wachtw=(EditText) view.findViewById(R.id.txtWachtwoord); 
     String gebruiker = gebr.getText().toString(); 
     String wachtwoord = wachtw.getText().toString(); 

     mListener.login(gebruiker, wachtwoord); 
    } 

    public void navigeerRegistratie() 
    { 
     mListener.navigeerRegistratie(); 
    } 

    @Override 
    public void onDetach() 
    { 
     super.onDetach(); 
     mListener = null; 
    } 

    public interface OnMainFragmentInteractionListener { 
     //Todo: Update argument type and name 
     public void login(String gebruiker, String wachtwoord) throws SQLException; 
     public void navigeerRegistratie(); 
    } 



} 

這是我的主要活動MainActivity.java

package com.example.arno.eventaris; 

import android.app.DialogFragment; 
import android.database.Cursor; 
import android.graphics.Color; 
import android.net.Uri; 
import android.support.v7.app.ActionBar; 
import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.os.Build; 
import android.widget.LinearLayout; 
import android.widget.Toast; 

import com.example.arno.eventaris.Database.DBAdapter; 

import java.sql.SQLException; 


public class MainActivity extends ActionBarActivity implements MainFragment.OnMainFragmentInteractionListener,RegistratieFragment.OnRegistratieFragmentInteractionListener{ 

    private Cursor gebruikerCursor; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     if (savedInstanceState == null) { 
      getSupportFragmentManager().beginTransaction() 
        .add(R.id.container, new PlaceholderFragment()) 
        .commit(); 
     } 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 

    @Override 
    public void login(String gebruiker, String wachtwoord) throws SQLException { 
     DBAdapter db = new DBAdapter(this); 

     db.open(); 

     gebruikerCursor = db.getGebruiker(gebruiker); 
     if(gebruikerCursor.moveToFirst()) { 
      gebruikerCursor.moveToFirst(); 
      String wwControle = gebruikerCursor.getString(gebruikerCursor.getColumnIndex("wachtwoord")); 

      if (wachtwoord.equals(wwControle)) { 

       HomeFragment fragment = new HomeFragment(); 
       Bundle bundle = new Bundle(); 
       bundle.putString("gebruikersnaam", gebruiker); 
       fragment.setArguments(bundle); 
       getFragmentManager().beginTransaction().replace(R.id.container, fragment).commit(); 
      } else { 
       DialogFragment errorlogin = new ErrorLogin(); 
       errorlogin.show(getFragmentManager(), "Wachtwoord incorrect!"); 
      } 
     } 
     else 
     { 
      DialogFragment errorlogin = new ErrorLogin(); 
      errorlogin.show(getFragmentManager(), "Gebruikersnaam incorrect!"); 
     } 
     db.close(); 
    } 

    @Override 
    public void navigeerRegistratie() { 
     getFragmentManager().beginTransaction().replace(R.id.container, new RegistratieFragment()).commit(); 
    } 

    @Override 
    public void registreren(String gebruiker, String voornaam, String naam, String email, String wachtwoord, String herhaalWachtwoord) { 
     if(wachtwoord.equals(herhaalWachtwoord)) { 
      DBAdapter db = new DBAdapter(this); 

      db.open(); 
      long id = db.insertGebruiker(gebruiker, voornaam, naam, email, wachtwoord); 
      getFragmentManager().beginTransaction().replace(R.id.container, new MainFragment()).commit(); 
     } 
     else 
     { 
      DialogFragment errorregistratie = new ErrorRegistratie(); 
      errorregistratie.show(getFragmentManager(), "Wachtwoorden komen niet overeen!"); 
     } 
    } 

    /** 
    * A placeholder fragment containing a simple view. 
    */ 
    public static class PlaceholderFragment extends Fragment { 

     public PlaceholderFragment() { 
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
           Bundle savedInstanceState) { 
      View rootView = inflater.inflate(R.layout.fragment_main, container, false); 
      return rootView; 
     } 
    } 
} 

而作爲最後這裏是我的activity_main.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" 
    android:layout_width="match_parent" android:layout_height="match_parent" 
    tools:context=".MainActivity" tools:ignore="MergeRootFrame" /> 

在此先感謝!

+0

登錄和註冊按鈕都沒有響應? – Prudhvi

+0

確實,當我點擊它們時,絕對沒有任何反應。 – HeadachePanda

+0

我已經在我的onCreateView方法中放置了一個斷點,然後對其進行調試。似乎它沒有被調用。它仍然加載我的佈局。 – HeadachePanda

回答

0

通過使用相同的代碼創建一個新項目來解決它,必須是比我的代碼更深的問題。