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>

这是我最芬芳的活动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" />

提前致谢!

头痛熊猫

通过使用相同的代码创建一个新项目来解决此问题,它必须比我的代码更深入地解决问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使对象响应按钮单击

来自分类Dev

Chrome扩展程序如何响应按钮在页面中的单击?

来自分类Dev

Android DrawerLayout不响应按钮单击事件

来自分类Dev

jQuery不响应按钮单击(不提交)

来自分类Dev

无响应按钮

来自分类Dev

重力形式的响应按钮

来自分类Dev

有一个响应按钮

来自分类Dev

调用javascript后无响应按钮

来自分类Dev

jQuery onClick不响应按钮

来自分类Dev

tkinter 标签不响应按钮

来自分类Dev

单击按钮时的随机XML布局

来自分类Dev

如何删除片段布局中任意位置的单击转到单击该单击的主要活动按钮

来自分类Dev

如果未单击按钮,我如何检查

来自分类Dev

单击按钮时未更新Android布局高度

来自分类Dev

活动不加载布局

来自分类Dev

活动布局未显示

来自分类Dev

使用jQuery显示Ajax响应按钮ID

来自分类Dev

如何在导航栏中做出响应按钮?

来自分类Dev

使用jQuery显示Ajax响应按钮ID

来自分类Dev

在处理数据Swift IOS时响应按钮

来自分类Dev

单击时隐藏离子反应按钮

来自分类Dev

单击按钮将TableRow xml布局添加到TableLayout

来自分类Dev

我想录制来自麦克风的声音,但我的VLC的“录制”按钮已禁用

来自分类Dev

尽管USB端口似乎已通电,但我的PC无法立即响应开机开关

来自分类Dev

单击按钮旋转活动

来自分类Dev

CButton派生的'SubclassDlgItem'在VS2015 CLR的CDialogBar上不可见,但响应按钮单击,在VC ++ 6中工作正常

来自分类Dev

当我单击按钮打开此活动时,它关闭

来自分类Dev

单击提交按钮时未重新加载Ruby on Rails页面

来自分类Dev

想将状态从 0(未验证)更改为 1(已验证)但我的代码不起作用

Related 相关文章

热门标签

归档