मैं एंड्रॉइड प्रोग्रामिंग के लिए बहुत नया हूं इसलिए कृपया मेरी नोबई-नेस को क्षमा करें। मैं एक बहुत ही सरल गतिविधि बनाने की कोशिश कर रहा हूं जिसमें लेआउट के बीच में एक टेक्स्ट व्यू होगा और बस इसे हर दो सेकंड में एक अलग पाठ पर स्विच करें। उदाहरण के लिए, टेक्स्ट व्यू "टेक्स्ट 1" कहेंगे, कुछ सेकंड के लिए रुकें, फिर "टेक्स्ट 2, और फिर से रोकें। आखिरकार, मैं और ग्रंथ जोड़ना चाहता हूं और उन्हें एक दूसरे के बाद एक चक्र रखना चाहता हूं। मुझे पता है कि यह एक जैसा लगता है सुपर सरल बात है, लेकिन मैं मुख्य रूप से इस पल में धागे और हैंडलरों के बारे में जानने की कोशिश कर रहा हूं। वैसे भी, मैंने पढ़ा है कि हमें त्रुटि को रोकने के लिए यूआई थ्रेड से लंबी चीजें कैसे रखनी चाहिए, इसलिए मैंने सोचा कि मैं एक हैंडलर का उपयोग करूंगा । केवल स्क्रीन पर 2 ग्रंथों के बीच स्विच करने दुर्भाग्य से, मैं नहीं इस काम करने के लिए प्राप्त कर सकते हैं यहाँ कुछ कोड है:।हैंडलर और पोस्ट के साथ रुकने एंड्रॉइड में पोस्ट किया गया
public class MainActivity extends Activity {
String[] myarray = {"text1" , "text2"};
int arraylength = myarray.length;
int count;
Handler handler = new Handler();
TextView mytexts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mytexts = (TextView)findViewById(R.id.my_texts);
mytexts.setText(myarray[0]);
Thread t = new Thread(new Runnable(){
public void run() {
for (int count = 0; count < arraylength; count++){
handler.postDelayed(new Runnable(){
public void run() {
mytexts.setText(myarray[1]);
}
}, 7000);
}
}
});
t.start();
}
}
मैं क्या logcat में देख सकते हैं से, हैंडलर postDelayed एक के बाद एक सही चलाने के लिए लगता है (मेरे कोड के मामले में, यह पोस्ट के साथ 7 सेकेंड का इंतजार नहीं करता है, किसी अन्य पोस्ट को करने के लिए)। इसके अलावा, मैं "mytexts.setText (myar" में 1 बनाना चाहता हूं रे [1]); "लूप के लिए" गिनती "जैसा ही हो, इसलिए यह सरणी में तारों में से एक जैसा ही हो सकता है लेकिन इससे मुझे कोई त्रुटि मिलती है। मैं इस पर घंटों तक फंस गया हूं और अन्य उदाहरण जो मैंने पाया है, मेरे जैसे किसी के लिए बहुत जटिल है जो मुख्य रूप से मूल बातें प्राप्त करना चाहता है इससे पहले कि मैं अन्य चीजों से निपट सकूं। इनमें से किसी भी मदद से किसी भी मदद की सराहना की जाएगी। धन्यवाद।
आप 'postDelayed' क्यों न निकालने और एक' while' के साथ एक 'post' का उपयोग और फिर कुछ' थ्रेड कर (समय गुणक में देरी करने पर ध्यान दें) .sleep (समय) '? –
@ रोटरी पोस्ट पोस्ट करें देरी विधि देरी के बाद मुख्य धागे पर निष्पादित करने के लिए कोड पोस्ट करेगा। आपको धागे को सोने की जरूरत नहीं है। इस विशेष मामले में उसे थ्रेड की जरूरत नहीं है! – Ali
@ एली हाँ आप सही हैं, मैं अपना कोड बदलना नहीं चाहता था, लेकिन उसे यह बताने के लिए कि उस कोड के साथ इसे कैसे किया जाए। –