【问题标题】:Start new Activity on a button click单击按钮启动新活动
【发布时间】:2014-07-25 18:46:50
【问题描述】:

我是 Android 和 Java 的新手,我知道这个网站上有很多关于单击按钮启动新活动的问题和答案。我阅读了它们,甚至在 YouTube 上观看了一些视频,但我不知道我做错了什么。我知道这对你来说很简单,希望你能帮助我。每当我运行时,我都会收到如下错误。

错误:找不到符号类视图 找不到符号类意图。 找不到符号类意图。 错误:任务 ':app:compileDebugJava' 执行失败。

编译失败;有关详细信息,请参阅编译器错误输出。

我使用的是 Android Studio(测试版)0.8.2

下面是Java代码

package com.abc.xyz;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import com.abc.xyz.R;

public class AddNew extends Activity {

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


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.add_new, 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();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    public void goo(View view)
    {
        Intent intent=new Intent (this, AddNewWeb.class);
        startActivity(intent);
    }

}

以下是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"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.abc.xyz.AddNew"
    android:baselineAligned="false">    

<Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button2"
        android:layout_gravity="center_horizontal"
        android:onClick="goo"/>


</LinearLayout>

在我要打开的其他活动中我应该做什么?

提前致谢。

【问题讨论】:

  • 你导入android.view.View了吗?将此添加到您的导入中,您是否在 Eclipse 中?
  • 首先,您应该在处理任何类型的错误时发布整个堆栈跟踪。其次,“找不到符号”通常意味着您缺少导入或库。在这里,您缺少意图和视图的导入:import android.content.Intent; import android.view.View;。您可以尝试添加它以查看它是否有效?第三,你能不能把你的AndroidManifest.xml的内容也贴出来?
  • 谢谢。我没有导入它们。我正在使用 Android Studio,它曾经在我们必须导入某些内容时显示灯泡,但现在没有显示,我是否更改了任何设置?

标签: android android-activity


【解决方案1】:

我发现您在这里缺少所有导入。如果您使用的是 Eclipse,请尝试按 Ctrl+Shift+o 来获取所有导入。

另外,请确保您的活动已在您的 XML 文件中注册。它需要在 Manifest 文件中注册,您的应用才能识别您的 Activity。

【讨论】:

    【解决方案2】:

    您只需将其添加到您的课程中:

    import android.view.Menu;
    import android.view.MenuItem;
    

    将它放在其他导入旁边。这应该可以解决问题

    【讨论】:

      【解决方案3】:

      您现在需要导入一些库,例如import android.content.Intent; 为什么不试试这个?

      public class AddNew extends Activity implements OnClickListener{
      .
      .
      .
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_add_new);
          View btn = new (View)findViewById(R.id.button2);
          btn.setOnClickListener(this);
      }
      .
      .
      .
      @Override
      public void onClick(View v){
         if (v.getId == R.id.button2){
            Intent intent=new Intent (this, AddNewWeb.class);
            startActivity(intent);
         }
      }
      

      }

      【讨论】:

        【解决方案4】:

        我找到了解决您问题的方法。事实上,这是您在处理新活动时经常会从脑海中溜走的一件事。为了打开一个新的活动,你需要在你的 AndroidManifest.xml 文件中添加一个权限声明。将以下代码行添加到您的 AndroidManifest.xml:- &lt;activity android:name="com.abc.xyz.AddNewWeb"&gt;&lt;/activity&gt;

        【讨论】:

          【解决方案5】:

          首先从 Build==>Clean Project 清理您的项目,然后 在您的 onCreate() 方法中使用此代码

          Button button = (Button)findViewById(R.id.btn_id);
          button.setOnClickListner(new OnClickListner)
          {
             @override
             public OnClick(View v)
             {
                Intent intent = new Intent(getApplicationContex(), YourActivity.class);
                startActivity(intent);
                finish();
            }
          }
          

          或者简单地实现 OnClickListner 并覆盖 OnClick 方法并将这一行放入您的 onCreate()

          Button button = (Button)findViewById(R.id.btn_id);
          button.setOnClickListner(this);
          

          如果这段代码没有解决问题,那么检查你的JDK,如果你使用的是JDK7并且项目是在JDK8上构建的,那么安装JDK8并设置路径和java_home并再次运行,它工作正常......

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-03-26
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多