在活动类 com.example.ivy.bienesraicesapp.PanelUsuarioActivity 中找不到方法(视图)

Posted

技术标签:

【中文标题】在活动类 com.example.ivy.bienesraicesapp.PanelUsuarioActivity 中找不到方法(视图)【英文标题】:Could not find a method (View) in the activity class com.example.ivy.bienesraicesapp.PanelUsuarioActivity 【发布时间】:2016-01-16 00:53:12 【问题描述】:

我的按钮方法 "add" 有一些问题,因为活动正在调用另一个类,我找不到错误在哪里。

AddPropiedadActivity.java 和下面的代码:

public class AddPropiedadActivity extends AppCompatActivity 

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_propiedad);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View view) 
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
            setContentView(R.layout.activity_add_propiedad);
        
    );
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);


public void add(View view)
    Toast.makeText(getBaseContext(), "TESTING  ", Toast.LENGTH_SHORT).show();
 

而活动 content_add_propiedad.xml 只需一个按钮即可使用 onClick 方法

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_
    android:layout_
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:showIn="@layout/activity_add_propiedad"
    tools:context="com.example.ivy.bienesraicesapp.AddPropiedadActivity">

    <Button
        android:onClick="add"
        android:id="@+id/btn_add"
        android:text="@string/titulo"
        android:layout_
        android:layout_/>

</RelativeLayout>

但是当我单击按钮时出现此错误,因为正在调用 PanelUsuarioActivity 而不是 AddPropiedadActivity,即使我在 PanelUsuarioActivity 中添加我的方法,按钮也可以工作......所以我想修复这个错误并且活动 content_add_propiedad 调用java类AddPropiedadActivity:

java.lang.IllegalStateException: 找不到方法 add(View) in 活动课 com.example.ivy.bienesraicesapp.PanelUsuarioActivity for onClick 视图类 android.support.v7.widget.AppCompatButton 上的处理程序 id 'btn_add'

这是另一个java类

public class PanelUsuarioActivity extends AppCompatActivity 

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

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View view) 
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
            setContentView(R.layout.activity_add_propiedad);
        
    );

谢谢。

【问题讨论】:

检查您的activity_add_propiedad.xml 并从btn_add 中删除属性android:onclick 但是如果我删除属性 onClick 按钮不要执行该方法 你可以调用 setOnClickListener 我不知道为什么我的 activity_add_propiedad.xml 正在调用类 PanelUsuarioActivity。 activity_add_propiedad.xml 应该调用类 AddPropiedadActivity。 【参考方案1】:

当我使用 setContentView 调用我的 Activity 时,PanelUsuarioActivity 出现错误。所以我用一种方法改变它并且它有效! :)!

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View view) 
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
            openAlta();
    
    );


public void openAlta( )
    Intent intent = new Intent(this,AddPropiedadActivity.class);
    startActivity(intent);

【讨论】:

以上是关于在活动类 com.example.ivy.bienesraicesapp.PanelUsuarioActivity 中找不到方法(视图)的主要内容,如果未能解决你的问题,请参考以下文章

找不到明确的活动类 ;您是不是在 AndroidManifest.xml 中声明了此活动

无法找到明确的活动类您是不是在 AndroidManifest.xml 中声明了此活动?

在 ngFor angular 2 中提供活动类 onclick

在引导程序中更改活动类的颜色

如何在MainActivity类中调用非活动类?

淘汰赛在点击时切换活动类