Java 在系统中添加另一个计数器
我有一个计数器在这个项目中,它的所有工作,但我试图把另一个计数器在屏幕底部,将做同样的事情,但将工作在另一个计数。所以会有两个计数器计数不同,但我无法让它工作 xml代码:Java 在系统中添加另一个计数器,java,android,button,count,Java,Android,Button,Count,我有一个计数器在这个项目中,它的所有工作,但我试图把另一个计数器在屏幕底部,将做同样的事情,但将工作在另一个计数。所以会有两个计数器计数不同,但我无法让它工作 xml代码: <TextView android:id="@+id/TextViewCount" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizont
<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);
}
}
您需要线程来执行此任务,每个计数器必须在单个线程中运行 这样做:
Thread t = new Thread(new Runnable(){
public void run() {
Thread.sleep(1000);
counter++;
}
});
t.start();
或者使用异步任务
更新:
<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);
}
}
制作另一个计数器和两个线程变量:
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();
}
也许您需要if子句来测试线程是否正在实际运行。请显示定义了两个计数器的位置?我们在任何地方都有mcount和buttoncount以及textViewCount,但目前这里只有一个计数器,我尝试的所有东西都不起作用。我如何将其添加到代码中?我对java编码非常陌生,您只需要另一个计数器变量,然后将线程添加到onClick方法中,或者,您可以创建一个方法startCounter(int counter),在那里执行线程,这样您只需要调用startCounter(counter1);onClick方法中的startCounter(counter 2)OK对我来说毫无意义对不起:我不知道x,你有没有可能把它添加到代码中