gpt4 book ai didi

java - 按钮在 Android 应用程序中不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:53:06 27 4
gpt4 key购买 nike

我是 Android 的新手,正在尝试实现一个简单的按钮,它应该在 Toast 中显示一条消息(最终它将用于创建一个帐户)。但是当我按下按钮时没有任何反应,logcat 上也没有显示任何错误,所以我一定是遗漏了一些明显的东西,但我找不到它!!

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.laptop.whatsfordinner" >

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!--Splash Screen -->
<activity
android:name=".Splash"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity
android:name=".MainPage"
android:label="@string/app_name" >

</activity>

<!--Register User -->
<activity
android:name=".RegistrationActivity"
android:label="Register User">
</activity>
</application>

<!-- Internet Permissions -->
<uses-permission android:name="android.permission.INTERNET" />

</manifest>

注册.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="1">

<!-- Name Label -->
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/reg_title1"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dip"
android:textSize="17sp"/>

<!-- Input Name -->
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="2.08"></LinearLayout>

<EditText android:id="@+id/inputName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:layout_marginBottom="15dip"
android:singleLine="true"
android:background="#ffffff" />

<!-- Username Label -->
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/reg_title2"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dip"
android:textSize="17sp"/>

<!-- Input Username -->
<EditText android:id="@+id/inputUsername"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:layout_marginBottom="15dip"
android:singleLine="true"
android:background="#ffffff" />

<!-- Email Label -->
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/reg_title3"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dip"
android:textSize="17sp"/>

<!-- Input Email -->
<EditText android:id="@+id/inputEmail"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:layout_marginBottom="15dip"
android:singleLine="true"
android:inputType="textEmailAddress"
android:background="#ffffff" />

<!-- Password Label -->
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/reg_title4"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dip"
android:textSize="17sp"/>

<!-- Input Password -->
<EditText android:id="@+id/inputPassword"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:layout_marginBottom="15dip"
android:singleLine="true"
android:inputType="textPassword"
android:background="#ffffff" />

<!-- Button Register-->

<Button android:id="@+id/btnRegister"
android:layout_width="136dp"
android:layout_height="37dp"
android:text="@string/reg_button1"
android:enabled="true"
android:layout_gravity="center_horizontal" />

</LinearLayout>

RegistrationActivity.java

 package com.example.laptop.whatsfordinner;


import android.app.Activity;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;



public class RegistrationActivity extends Activity {


// Progress Dialog
private ProgressDialog pDialog;

JSONParser jsonParser = new JSONParser();
EditText inputName;
EditText inputUsername;
EditText inputEmail;
EditText inputPassword;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.registration);

// Create button
Button btnRegister1 = (Button) findViewById(R.id.btnRegister);

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

@Override
public void onClick(View view) {
// creating new account in background thread
Toast.makeText(RegistrationActivity.this, "Example action.", Toast.LENGTH_SHORT).show();

}
});
}

注册.java

package com.example.laptop.whatsfordinner;

import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.support.v4.widget.DrawerLayout;

public class Registration extends Fragment {
/**
* The fragment argument representing the section number for this
* fragment.
*/
private static final String ARG_SECTION_NUMBER = "section_number";

/**
* Returns a new instance of this fragment for the given section
* number.
*/
public static Registration newInstance(int sectionNumber) {
Registration fragment = new Registration();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}

public Registration() {
}

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

@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
((MainPage) activity).onSectionAttached(
getArguments().getInt(ARG_SECTION_NUMBER));
}

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

我做错了什么?

最佳答案

您正在为 FragmentActivity 中的 Layout 充气。

如果你想在你的 Fragment 中处理那个 Button,这样做:

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

Button regButton1 = (Button) rootView.findViewById(R.id.btnRegister);

regButton1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "Example action", Toast.LENGTH_SHORT).show();
}
});

return rootView;
}

您的 Activity 中的代码看起来不错,但是您为两者填充了相同的 Layout

参见:

setContentView(R.layout.registration);

和:

View rootView = inflater.inflate(R.layout.registration, container, false);

此外,按 CTRL + Alt + O 删除未使用的导入,最后,它应该是这样的(你的 fragment 的导入):

import android.app.Activity;
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.Toast;

就像我猜的那样,问题是因为您在 FragmentActivity 中膨胀了 Layout。我已经试过了,它与 Activity 一起工作。

(顺便问个好问题)。


解决方案:FragmentActivity 设置您自己的Layout,但两者的Layout 不同。

然后,您就可以开始了。

关于java - 按钮在 Android 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35207636/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com