2013-02-15 4 views
0

У меня есть один счетчик в этом проекте, все работает, но я пытаюсь поставить еще один счетчик в нижней части экрана, который будет делать то же самое, но будет работать на другом счету. Таким образом, будет два счетчика, которые будут считаться по-другому, но я не могу заставить его работать.Добавить еще один счетчик в систему

код XML:

<TextView 
    android:id="@+id/TextViewCount" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:text="@string/hello_world" /> 

<Button 
    android:id="@+id/ButtonCount" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/TextViewCount" 
    android:layout_alignRight="@+id/TextViewCount" 
    android:layout_marginBottom="22dp" 
    android:text="Count" /> 

Основной код:

package com.example.counter; 

import android.app.Activity; 
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.main); 
     countTextView = (TextView) findViewById(R.id.TextViewCount); 
     countButton = (Button) findViewById(R.id.ButtonCount); 

     countButton.setOnClickListener(new View.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); 
    } 
    } 
+0

Укажите, где указаны два счетчика? – Rahil2952

+0

в любом месте у нас есть mcount и buttoncount и textviewcount – Luke

+0

, но theres в настоящее время только один счетчик здесь прямо сейчас все ive попробовал не работает – Luke

ответ

0

Вы должны резьб выполнить эту задачу, каждый счетчик должен работать в отдельном Thread.

ли что-то подобное:

Thread t = new Thread(new Runnable(){ 

    public void run() { 
     Thread.sleep(1000); 
     counter++; 
    } 
}); 
t.start(); 

или использовать AsyncTask

UPDATE:

сделать еще один счетчик и две переменные темы:

private static int mCount2 = 0; 
private static Thread mT1, mT2; 

, то вам нужно метод, что-то ли ке это:

private void startCounter(Thread t, counter) { 
    t = new Thread(new Runnable(){ 

     public void run() { 
     while(true) { 
      Thread.sleep(1000); 
      counter++; 
     } 
     } 
    }); 
t.start(); 
} 

вы можете вызвать этот метод в OnClick-метод с для каждого потока со счетчиком, , то вы просто должны остановить темы в методе OnPause:

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

может быть вам нужно, если условия для проверки, если поток работает нормально.

+0

нормально, как бы я хотел добавить это в код? * im очень новое для java-кодирования * – Luke

+0

вам просто нужна другая переменная счетчика, а затем добавьте потоки в метод onClick или вы создаете метод startCounter (int counter), где выполняется потоковая передача, так что вам просто нужно вызвать startCounter (counter1); startCounter (counter2) внутри метода onClick – Nickolaus

+0

ok, который не имеет смысла для меня, извините: L любой шанс вы могли бы добавить его в код, поскольку я понятия не имею x – Luke

Смежные вопросы