Android开发中的新手如何解决此问题?

时间:2018-07-24 11:05:24

标签: android

实际上我是在2-3天前开始进行android开发的,我不知道该如何解决?

这是我的MainActivity.java

package com.example.himanshu.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {

public void myFunc(View view){

    Log.i("new", "new");
    Toast.makeText(MainActivity.this, "TEst", Toast.LENGTH_SHORT).show();
}

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

当我尝试在模拟器上运行此应用程序时,此方法不起作用,我的按钮ID也为myFunc 这是LogCat

  

07-24 16:24:03.722 3416-3416 /? I / art:不是延迟启用-Xcheck:jni(已启用)    07-24 16:24:03.723 3416-3416 /? W / art:使用默认值的X86出现意外的CPU变体:x86 07-24 16:24:03.780 3416-3416 / com.example.himanshu.myapplication W / System:ClassLoader引用的未知路径:/data/app/com.example。 himanshu.myapplication-1 / lib / x86                                                                                     [07-24 16:24:03.791 1505:1530 D /]                                                                                     HostConnection :: get()建立新的主机连接0x91016200,tid 1530 07-24 16:24:03.803 3416-3416 / com.example.himanshu.myapplication I / InstantRun:Instant Run Runtime已启动。 Android包是com.example.himanshu.myapplication,实际应用程序类为null。 07-24 16:24:04.093 3416-3416 / com.example.himanshu.myapplication W / System:ClassLoader引用的未知路径:/data/app/com.example.himanshu.myapplication-1/lib/x86 07-24 16 :24:04.190 3416-3416 / com.example.himanshu.myapplication W / art:在Android 4.1之前,方法android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter,android.content .res.ColorStateList,android.graphics.PorterDuff $ Mode)会错误地覆盖android.graphics.drawable.Drawable 07-24 16:24:04.325 3416-3416 / com.example.himanshu.myapplication W中的package-private方法/ gralloc_ranchu:Gralloc管道失败   [07-24 16:24:04.325 3416:3416 D /]   HostConnection :: get()建立新的主机连接0xab0add80,tid 3416   [07-24 16:24:04.372 3416:3438 D /]                                                                                             HostConnection :: get()建立新的主机连接0x9f60f280,tid 3438 07-24 16:24:04.388 3416-3438 / com.example.himanshu.myapplication I / OpenGLRenderer:初始化的EGL版本1.4 07-24 16:24:04.388 3416-3438 / com.example.himanshu.myapplication D / OpenGLRenderer:交换行为1 07-24 16:24:04.390 3416-3438 / com.example.himanshu.myapplication W / OpenGLRenderer:无法使用EGL_SWAP_BEHAVIOR_PRESERVED选择配置,不重试... 07-24 16:24:04.390 3416-3438 / com.example.himanshu.myapplication D / OpenGLRenderer:交换行为0 07-24 16:25:11.717 3416-3437 / com.example.himanshu.myapplication W /系统:ClassLoader引用的未知路径:/data/data/com.example.himanshu.myapplication/lib

成绩

apply plugin: 'com.android.application'

android {
compileSdkVersion 24
buildToolsVersion "28.0.1"
defaultConfig {
    applicationId "com.example.himanshu.myapplication"
    minSdkVersion 15
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard- 
      rules.pro'
    }
}
  }

  dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
 }

4 个答案:

答案 0 :(得分:1)

我已经尝试过您的代码,并且在Ubuntu 16.04 LTE上运行良好。 API级别为25,Android版本为7.1.1 这是按钮的xml代码

 <Button
    android:id="@+id/myFunc"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="myFunc"

    />

并且您在MainActivity中定义的函数是

 public    void myFunc(View view){
    Log.i("new", "new");
    Toast.makeText(MainActivity.this, "TEst", Toast.LENGTH_SHORT).show();
}

这是onCreate()

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

答案 1 :(得分:0)

    public class MainActivity1 extends AppCompatActivity {
        public void myFunc(View view) {

            Log.i("new", "new");
            Toast.makeText(MainActivity1.this, "TEst", Toast.LENGTH_SHORT).show();
        }

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



    <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/parentLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity1">


    <Button android:id="@+id/myFunc"
        android:layout_width="match_parent"
        android:onClick="myFunc"
        android:layout_height="wrap_content" />


</android.support.design.widget.CoordinatorLayout>

有什么不同吗?

答案 2 :(得分:0)

基于您发布的xml:(https://ghostbin.com/paste/6pfgd

<Button
android:id="@+id/myFunc"
.../>

您可以使用以下代码访问活动中的按钮:

Button myButton;

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

    myButton = (Button) findViewById(R.id.myFunc);
    myButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            myFunc();
        }
    });
}

public void myFunc() {
    Toast.makeText(MainActivity1.this, "TEst", Toast.LENGTH_SHORT).show();
}

还有另一种无需引用按钮即可使用方法myfunc的方法,您应该将布局更改为:

<Button
    android:onClick="myFunc"
.../>

然后将方法myFunc保留为原样:

public void myFunc(View view){
   Log.i("new", "new");
   Toast.makeText(MainActivity.this, "TEst", Toast.LENGTH_SHORT).show();
}

答案 3 :(得分:0)

哦,上帝,我找到了解决方法 这是我的xml代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.himanshu.myapplication.MainActivity">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:id="@+id/textView" />

<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView"
    android:layout_toRightOf="@+id/textView"
    android:layout_toEndOf="@+id/textView"
    android:layout_marginLeft="18dp"
    android:layout_marginStart="18dp"
    android:layout_marginTop="140dp"
    android:id="@+id/myFunc"
    android:onClick="myFunc" />

在我的xml代码中,我忘了在onClick属性中添加myFunc,但是当我添加它时就可以使用...

对于这个愚蠢的问题也很抱歉,这是android开发中的新功能。