У меня проблема, я пытаюсь заставить фон моих приложений меняться каждые десять секунд, основываясь на таймере ... Я сделал то, что мог, и не могу решить, как я новичок в Java и программировании:) Я был бы рад, если бы кто-то мог просто исправить мой код, пожалуйста;) (Я могу упаковать его в телефон и т. Д. Затмение не показывает ошибку, но мое приложение закрывается, когда таймер отключается), вот оно:
public class CookBookActivity extends Activity {
/** Called when the activity is first created. */
private static final long GET_DATA_INTERVAL = 10000;
int images[] = {R.drawable.smothie1,R.drawable.omletherb1};
int index = 0;
ImageView img;
Handler hand = new Handler();
private LinearLayout layout;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
layout = (LinearLayout)findViewById(R.id.linearLayout1);
hand.postDelayed(run, GET_DATA_INTERVAL);
}
Runnable run = new Runnable() {
public void run() {
layout.setBackgroundDrawable(getDrawable(images[index++]));
if (index == images.length)
index = 0;
hand.postDelayed(run, GET_DATA_INTERVAL);
Typeface tf2 = Typeface.createFromAsset(getAssets(),
"fonts/BPreplay.otf");
TextView tv2 = (TextView) findViewById(R.id.textView2);
tv2.setTypeface(tf2);
Typeface tf = Typeface.createFromAsset(getAssets(),
"fonts/BPreplay.otf");
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setTypeface(tf);
Button mainNext = (Button) findViewById(R.id.nextScreen1);
mainNext.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent i = new Intent();
i.setClassName("com.unKnown.cookbook", "com.unKnown.cookbook.screen1");
startActivity(i);
}
});
}
};
protected Drawable getDrawable(int i) {
// TODO Auto-generated method stub
return null;
}
}
РЕДАКТИРОВАТЬ :
Теперь я окончательно решил свою проблему, и мое изображение переходит в фоновый режим (благодаря помощи @Yashwanth Kumar и меня :)), это почти нормальносейчас, но теперь он устанавливает только одно изображение в качестве фона (каждые десять секунд он устанавливает одно и то же изображение), я думаю, что это сводится к одной из двух следующих вещей:
либо:
-хэндлер останавливается (в чем я сомневаюсь) - теперь я подтвердил, что он работает, и каждую секунду он выполняет процедуру, так что до второго выпуска
или:
он использует только первое изображение изсписок (R.drawable.omletherb1), в этом случаеМне придется установить что-то вроде того, если R.Drawable.zzz установлен, тогда установите изображение R.drawable.ccc
Пожалуйста, скажите мне, что вы думаете, и вот код, с которым я сейчас закончил:
открытый класс CookBookActivity extends Activity {/ ** Вызывается при первом создании действия.* /
private static final long GET_DATA_INTERVAL = 1000;
int images[] = {R.drawable.omletherb1,R.drawable.smothie1};
int index = 0;
LinearLayout img;
Handler hand = new Handler();
private LinearLayout layout;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
layout = (LinearLayout)findViewById(R.layout.main);
hand.postDelayed(run, GET_DATA_INTERVAL);
Typeface tf2 = Typeface.createFromAsset(getAssets(),
"fonts/BPreplay.otf");
TextView tv2 = (TextView) findViewById(R.id.textView2);
tv2.setTypeface(tf2);
Typeface tf = Typeface.createFromAsset(getAssets(),
"fonts/BPreplay.otf");
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setTypeface(tf);
Button mainNext = (Button) findViewById(R.id.nextScreen1);
mainNext.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent i = new Intent();
i.setClassName("com.unKnown.cookbook", "com.unKnown.cookbook.screen1");
startActivity(i);
}
});
}
Runnable run = new Runnable() {
public void run() {
layout.setBackgroundDrawable(getDrawable(images[index++]));
if (index == images.length)
index = 0;
hand.postDelayed(run, GET_DATA_INTERVAL);
}
};
protected Drawable getDrawable(int i) {
// TODO Auto-generated method stub
return getResources().getDrawable(images[i%2]);
}
}