实际上我是在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'
}
答案 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开发中的新功能。