【问题标题】:Saving an integer onClick so it can be called back later on in the android app保存一个整数 onClick 以便稍后在 android 应用程序中回调它
【发布时间】:2012-02-07 01:10:15
【问题描述】:

我的可能是我拥有所有代码并且上面没有错误(根据 eclipse)但是当我尝试在我的应用程序上打开“page1”时它会冻结然后崩溃,如果我得到所有的 addPoints信息页面运行良好,你能帮我找出导致崩溃的原因吗?谢谢! 这是我的代码

package com.canadais.civics;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class page1 extends Activity implements OnClickListener 
{

    TextView Q1A1;
    TextView Q1A2;

    public static final String PREFS_NAME = "MyPrefsFile";
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
    public int testScore = (settings.getInt("YourScore", 0));
    Intent page2 = new Intent (this, Page2.class);

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
        Q1A1 = (TextView) findViewById(R.id.Q1A1);
        Q1A2 = (TextView) findViewById(R.id.Q1A2);
        Q1A1.setOnClickListener(this);
        Q1A2.setOnClickListener(this);
        //test = (TextView) findViewById(R.id.test);






        //test.setText(settings.getInt("YourScore", 0));


    }
    public void onClick(View v) 
    {
        switch(v.getId())
        {
        case R.id.Q1A1:
            addPoints(10);
            //Intent page2 = new Intent (this, Page2.class);
            startActivity(page2);
            break;
        case R.id.Q1A2:
            addPoints(5);
            //Intent page22 = new Intent (this, Page2.class);
            startActivity(page2);
            break;
        }   
    }



    public void addPoints(int points) 
    {
        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
        SharedPreferences.Editor editor = settings.edit();
        editor.putInt("YourScore", (testScore + points));
        editor.commit();       
    }

}

【问题讨论】:

  • 发布崩溃消息。 logcat 错误消息。
  • 当我在平板电脑上运行该应用程序并单击应该打开我为您显示代码的页面的按钮时,它显示“加拿大应用程序是(进程 com.canadais.civics ) 已意外停止。请重试。"
  • 你应该显示你的 logcat 来找出错误

标签: java android eclipse compiler-errors onclick


【解决方案1】:

如果您在执行startActivity() 后遇到问题,可能有多种原因。我现在能想到两个:

  1. AndroidManifest.xml 中缺少 Activity 声明;
  2. 要启动的 Activity(在您的情况下为 Page2.java)中的代码不正确。

为了确定你遇到的是哪一个错误,建议你学会把错误信息贴在Android SDK捆绑的LogCat中,而不是在手机屏幕上弹出一个,否则没人能准确判断问题。

【讨论】:

  • 问题是如果我把“//”放在所有“addPoints”信息的前面,应用程序运行良好,屏幕上也没有错误。
  • 我相信我们这里的大多数人都期待 LogCat 中显示的错误消息,而不是“加拿大的应用程序(进程 com.canadais.civics)已意外停止。请重试。”(其中我将此称为屏幕上的错误弹出窗口)。回到主题,根据您的描述,错误范围似乎在 addPoints() 方法内,但我们仍然需要更多错误消息信息才能更快地找出您的问题。
猜你喜欢
  • 2015-12-31
  • 1970-01-01
  • 1970-01-01
  • 2022-08-14
  • 2022-08-04
  • 1970-01-01
  • 1970-01-01
  • 2017-05-30
  • 1970-01-01
相关资源
最近更新 更多