2015-03-16 4 views
-1

Как я могу показывать часовые минуты и секунды часов в Textview непрерывно, так как я использую динамическую линейную компоновку. Этот формат работает на статическом макете, но не на динамическом макете, пожалуйста, помогите мне благодарить?Часы и динамическая компоновка

  • пункт Список

    public class ButtonActivity extends Activity { 
    
    Button b; 
    ScrollView scrollview;  
    int count = 4;`enter code here` 
    private int mHour,mMinute,mSecond; 
    int min,hr,sec; 
    private Handler mHandler = new Handler(); 
    
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_button);  
        Runnable mUpdate = new Runnable() { 
         @Override 
         public void run() { 
         Calendar c = Calendar.getInstance(); 
         mHour = c.get(Calendar.HOUR_OF_DAY); 
         mMinute = c.get(Calendar.MINUTE); 
         mSecond = c.get(Calendar.SECOND); 
         min = mMinute; 
         hr = mHour; 
         sec = mSecond; 
         String timeSet = ""; 
    
         if (hr > 12) { 
         hr -= 12; 
         timeSet = "PM"; 
         } else if (hr == 0) { 
         hr += 12; 
         timeSet = "AM"; 
         } else if (hr == 12) 
         timeSet = "PM"; 
         else 
         timeSet = "AM";   
         String minutes = ""; 
         if (min < 10) 
         minutes = "0" + min; 
         else 
         minutes=String.valueOf(min);     
         String secs = ""; 
         if (sec < 10) 
         secs = "0" + sec; 
         else 
         secs = String.valueOf(sec); 
    
    
         mHandler.postDelayed(this, 1000); 
    
         } 
        }; 
    
         mHandler.post(mUpdate);    
         scrollview = new ScrollView(this); 
         LinearLayout linearlayout = new LinearLayout(this); 
        linearlayout.setOrientation(LinearLayout.VERTICAL);    
        scrollview.addView(linearlayout);   
        TextView t = new TextView(this); 
    
        t.setText(hr + ":" + minutes + ":" + secs+""+timeSet);   
        linearlayout.addView(t);  
        for(int i = 0; i<count;i++) 
        { 
        LinearLayout linear1 = new LinearLayout(this); 
         linear1.setOrientation(LinearLayout.HORIZONTAL); 
         linearlayout.addView(linear1);    
         b = new Button(this); 
         b.setText(""+i); 
         b.setId(i); 
         b.setTextSize(10); 
         b.setPadding(8, 3, 8, 3); 
         b.setTypeface(Typeface.SERIF,Typeface.BOLD_ITALIC); 
         b.setLayoutParams(newLayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));    
         linear1.addView(b);        
        }     
        this.setContentView(scrollview); 
    

    }
    }

ответ

0

Вы должны вызвать SetText() на вашем TextView внутри ваш метод Runnable запуска(). Теперь, когда текст будет создан, текст будет установлен только один раз.

+0

и где addview, что linerarlayout.addview (t) дает мне ошибку t не может разрешить переменную – mysun

+0

Вы должны объявить свой TextView перед тем, Мероприятия. –

+0

Можете ли вы внести исправление в программу для меня – mysun

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