-7

任何人都能看到这段代码有什么问题吗?将是一个股票代码,所以当一个按钮被点击时,1 被添加,然后 1 将再次变为 2,依此类推,基本上它是一个点击器,当关闭时会记住它所在的数字。

更清楚地说,这些行作为错误出现:

countButton.setOnClickListener(new OnClickListener() {
          public void onClick(View v) {
              mCount++;
              countTextView.setTextView.setText("Count: " + mCount);

所有代码:

  package com.example.counter;

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


public class MainActivity extends Activity {
    // Private member field to keep track of the count
    private static int mCount = 0;

    private TextView countTextView;
    private Button countButton;
    public static final String PREFS_NAME = "com.example.myApp.mCount";
    private SharedPreferences settings = null;
    private SharedPreferences.Editor editor = null;

    /** ADD THIS METHOD **/
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);  
      setContentView(R.layout.activity_main);
      countTextView = (TextView) findViewById(R.id.TextViewCount);
      countButton = (Button) findViewById(R.id.ButtonCount);

      countButton.setOnClickListener(new OnClickListener() {
          public void onClick(View v) {
              mCount++;
              countTextView.setText("Count: " + mCount);
              editor = settings.edit(); 
              editor.putInt("mCount", mCount);
              editor.commit();
          }
      });
    settings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);


     }

    @Override
    public void onPause() {
      super.onPause();  
    }

    @Override
    public void onResume() {
      super.onResume();  
      mCount = settings.getInt("mCount", 0);
      countTextView.setText("Count: " + mCount);
    }
    }
4

5 回答 5

3

您已在恢复和暂停之间切换逻辑。

暂停应该保留您的号码。

简历应该读旧号。

于 2013-02-10T19:00:37.640 回答
1

改成 new OnClickListener()除了new View.OnClickListener()大家建议的。

于 2013-02-10T19:12:56.687 回答
0

不要使用.setTextView.setText(..),而只是使用.setText (CharSequence text).

于 2013-02-10T19:02:55.233 回答
0

请参阅以下运行代码以满足您的要求

public class MainActivity extends Activity {
// Private member field to keep track of the count
private static int mCount = 0;

private TextView countTextView;
private Button countButton;
public static final String PREFS_NAME = "com.example.myApp.mCount";
private SharedPreferences settings = null;
private SharedPreferences.Editor editor = null;

/** ADD THIS METHOD **/
@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);  
  setContentView(R.layout.activity_main);
  countTextView = (TextView) findViewById(R.id.TextViewCount);
  countButton = (Button) findViewById(R.id.ButtonCount);

  countButton.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
          mCount++;
          countTextView.setText("Count: " + mCount);
          editor = settings.edit(); 
          editor.putInt("mCount", mCount);
          editor.commit();
      }
  });
settings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);


 }

@Override
public void onPause() {
  super.onPause();  
}

@Override
public void onResume() {
  super.onResume();  
  mCount = settings.getInt("mCount", 0);
  countTextView.setText("Count: " + mCount);
}
}

只需复制并粘贴它。就是这样。

于 2013-02-10T19:09:03.657 回答
0
import android.content.DialogInterface.OnClickListener;

应该改为

import android.view.View.OnClickListener;

您正在导入错误的侦听器,因此它需要不同的方法签名onClick()

除了提到的所有其他事情。

于 2013-02-10T19:18:32.960 回答