首页 > 求助,android studio开发中button失效

求助,android studio开发中button失效

我在用手机调试时发现无法使用button,只是点击变色而已,没有任何功能
这是xml代码

<LinearLayout 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:orientation="vertical" >


    <TextView
        android:gravity="center"
        android:textSize="24sp"
        android:textColor="#00ff00"
        android:text="@string/hello_world"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button"  />

    <EditText
        android:id="@+id/edit_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Type something here"
        android:maxLines="4"
        />

    <ImageView
        android:id="@+id/image_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/abc"
        />

</LinearLayout>


这是activity代码
  package com.example.uiwidgettest;

import android.app.Activity;
import android.media.Image;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;


public class MainActivity extends Activity {

    private EditText editText;
    private ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @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);
    }
    private Button button;
    protected void OnCreate (Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button =(Button) findViewById(R.id.button);
        editText =(EditText) findViewById(R.id.edit_text);
        imageView =(ImageView) findViewById(R.id.image_view);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,"You clicked Button 1",
                Toast.LENGTH_SHORT).show();
                switch (v.getId()){
                    case R.id.button:
                        String inputText =editText.getText().toString();
                        Toast.makeText(MainActivity.this,inputText,
                                Toast.LENGTH_SHORT).show();
                        imageView.setImageResource(R.drawable.cde);
                        break;
                    default:
                        break;
                }
            }
        });
    }
}

这是mainfest代码

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

本班上一学年学生科技竞赛获奖人次(团委需要):国家级 人次 省级 人次 校级 人次,只要人次


// 这才是 Activity 的生命周期方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

// 这一个方法是做什么的?没有用!删掉这个方法,把其内的代码放到 onCreate 中
protected void OnCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button.setOnClickListener(new View.OnClickListener() {

根据题主的评论 Update

你应该不明白注解Override的作用:它保证该方法在父类中有定义,用以确保程序员正确的拼写。如果你拼错了,会提示你错误:

The method OnCreate(Bundle) of type MainActivity must override or implement a super type method

你应该不明白Activity的生命周期,比如onCreate的作用,当Activity被首次创建时,该方法被调用,你需要覆写该方法,以提供视图。你注释了正确的,却在假的OnCreate里创建视图,当然是空的了。

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/app/Activity.java


先看下Activity的生命周期吧

【热门文章】
【热门文章】