尝试使用onClick按钮调用活动

时间:2013-05-27 11:02:05

标签: java android button android-activity

过去两天我一直在绞尽脑汁想要按钮上班。 基本上我希望我的按钮叫“添加密码功能”。

如果您想查看我的整个代码,请访问github.com/servingbaby/UPM-Epassafe。

这是我的main.xml(该按钮成功显示,但推送时没有任何反应)   main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">

    <TextView
        android:id="@android:id/empty"
        android:layout_width="fill_parent"
        android:layout_height="2dp"
        android:gravity="center"
        android:text="@string/no_accounts" />

        <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_gravity="center"
        android:text="@string/add_account" android:id="@+id/add" android:minWidth="125dip"></Button>

        <ListView android:id="@android:id/list"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"/>

</LinearLayout>

这是我的AndroidManifest缩小到我认为我出错的地方。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.epassafe.upm"
          android:versionCode="3"
          android:versionName="1.2">

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="16"/>
    <application android:icon="@drawable/upm" 
       ....>
        <activity android:name=".AppEntryActivity">
        </activity>

        <activity android:name=".FullAccountList">
            <meta-data android:name="android.app.default_searchable"
                       android:value=".SearchResults" />
        </activity>

        <activity android:name=".AddEditAccount">
        </activity>
    </application>
</manifest>

这是我的MainActivity.Java,我相信我应该调用正确的代码。

public abstract class MainActivity extends Activity implements OnClickListener{`

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final Button countButton = (Button) findViewById(R.id.add);

        countButton.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {

                Intent intent = new Intent(MainActivity.this,AddEditAccount.class);
                MainActivity.this.startActivity(intent);
            }
        });

    }
}

但按下按钮没有任何事情像我期望的那样发生。没有错误或强制关闭,所以我现在真的很茫然。三江源!

**编辑 谢谢大家如何帮助我。我已经尝试了许多建议的解决方案,但仍然没有想到它。我已经将我的文件上传到github,其中包含了我作为评论进行的一些尝试编辑。基本上我只想弄清楚如何添加一个按钮并让它运行必要的代码来添加一个帐户。 (原始代码运作良好,但我想改进它。抱歉,我的能力水平仍然很低,但试图学习我的最好:)我真的很感激,如果有人能帮助我这个!谢谢^^

**编辑2 再次感谢所有的意见和建议。我想出了一个简单的解决方案。我最终使用菜单包装器创建了一个按钮单击事件,而且当我想要尝试将正确的代码添加到另一个似乎几乎正在执行相同的操作时,我发现我正在编辑错误的Java文档。事情。每天学习新东西。

4 个答案:

答案 0 :(得分:0)

首先,您不需要实现OnClickListener来在按钮中设置列表器。但也许你有其他原因,如果没有,删除它。

你认为错误的xml的id名称我认为,看看这个: Difference between "@id/" and "@+id/" in Android 可能是因为@android:id而不是@ + id。

答案 1 :(得分:0)

使用这种方式调用Intent

Intent intent = new Intent(MainActivity.this, AddEditAccount.class);
                startActivity(intent);

答案 2 :(得分:0)

查看列表视图

<ListView android:id="@android:id/list"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"/>

您已将宽度和高度指定为填充父级,因此ListView位于按钮上,因此当您单击按钮时,屏幕上没有实际单击按钮。当您单击一个按钮时,按钮颜色会在您的情况下发生一秒钟的变化,请为您自己查看。所以删除列表视图或设置按钮下方的高度,然后检查按钮单击是否可行

答案 3 :(得分:0)

我不明白你为什么要在你的活动中实现OnClickListener。从您的活动中删除implements OnClickListener。它应该工作正常。

但是,由于你不知道是什么原因这样做,你应该点击你的按钮。

countButton.setOnClickListener(this);

public void onClick(View view)
{
Intent intent = new Intent(MainActivity.this,AddEditAccount.class);
                MainActivity.this.startActivity(intent);
}