2013-09-23 3 views
0

Я установил уведомление в моем коде. Всякий раз, когда я получаю уведомление, я хочу поместить текстовое представление в свою linear layout активность, которая изначально ничего не имеет.
Когда приходит второе уведомление, я хочу добавить еще один текстовый вид ниже предыдущего текстового представления.Как добавить заданный текст программно один под другим?

public class InformationActivity extends Activity 
{ 

    public static VideoInformationClass vidInfo = new VideoInformationClass() ; 
    public static LinearLayout lv ; 
    public static LayoutParams textViewParams; 
    public static TextView tv ; 
    public static TextView tv1,tv2,tv3,tv4,tv5,tv6,tv7,tv8,tv9,tv10; 
    static int fieldFrequency; 
    static int numberOfFrameLines; 
    static int numberOfVisibleLines; 
    static int numberOfVisiblePixels; 
    static int interlace; 
    static int imageFormat; 
    static int videoCoding; 
    static int scanType; 

    VideoPropertiesParams GetParams; 

    VideoPropertiesParams VP; 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.information_activity); 

     Context context = getBaseContext(); 
     LinearLayout lv = new LinearLayout(this); 
     lv.setOrientation(LinearLayout.VERTICAL); 
     LinearLayout.LayoutParams textViewParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     // tv = new TextView(this); 


    } 

@Override 
protected void onStart() { 
    // TODO Auto-generated method stub 
    super.onStart(); 
    onFieldFrequencyChanged(); 
    onImageFormatChanged(); 
    onInterlacedChanged(); 
    /*vidInfo.RegisterVidPropertyListener(); 
    vidInfo.RegisterSignalAndPresenceListener(); 
    vidInfo.RegisterThreeDChangeListener();*/ 
    if (ControlUnit.flag) { 
    GetParams = vidInfo.GetVideoProperty(); 
    Log.i("TvPlayerFunctionalTestApp","Get Video Property called"); 
    fieldFrequency = GetParams.fieldFrequency; 
    numberOfFrameLines = GetParams.numberOfFrameLines; 
    numberOfVisibleLines = GetParams.numberOfVisibleLines; 
    numberOfVisiblePixels = GetParams.numberOfVisiblePixels; 
    interlace = GetParams.interlace; 
    imageFormat = GetParams.imageFormat; 
    videoCoding = GetParams.videoCoding; 
    scanType = GetParams.scanType; 
    } 

    /* tv.setText("Something"); 
    tv.setLayoutParams(textViewParams); 
    lv.addView(tv);*/ 
} 

@Override 
protected void onStop() { 
    // TODO Auto-generated method stub 
    super.onStop(); 
    /*vidInfo.UnRegisterSignalAndPresenceListener(); 
    vidInfo.UnRegisterThreeDChangeListener(); 
    vidInfo.UnRegisterVidPropertyListener();*/ 
} 
public void onFieldFrequencyChanged(){ 

    String info = "On field frequency changed , value is " + vidInfo.ChangedFrequency; 

    tv = new TextView(this); 
    tv.setText(String.valueOf(info)); 
    LinearLayout.LayoutParams textViewParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    tv.setLayoutParams(textViewParams); 
    lv.addView(tv); 
} 
public void onImageFormatChanged() { 

    String info = "On Image Format changed , value is " + vidInfo.ChangedFormat; 
    tv1 = new TextView(this); 
    tv1.setText(String.valueOf(info)); 
    LinearLayout.LayoutParams textViewParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    tv1.setLayoutParams(textViewParams); 
    lv.addView(tv1); 
} 
public void onInterlacedChanged() { 

    String info = "On Interlaced changed , value is " + vidInfo.InterlaceChange; 
    tv.setText(String.valueOf(info)); 
    LinearLayout.LayoutParams textView 
Params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    tv.setLayoutParams(textViewParams); 
    lv.addView(tv); 
} 
+0

Не могли бы вы рассказать нам, что вы попробовали? – Reinherd

+0

String info = «При изменении частоты поля значение равно + vidInfo.ChangedFrequency; \t tv = новый TextView (this); tv.setText (String.valueOf (информация)); tv.setLayoutParams (InformationActivity.textViewParams); lv.addView (InformationActivity.tv); lv - моя линейная компоновка – SajidKhan

+0

Создайте ссылочную переменную, которая увеличивается с уведомлением. сделайте вертикальную ориентацию linearlayout и добавьте новый текст по коду – SKT

ответ

3

Просто объявить Линейное расположение с вертикальной ориентацией

 <LinearLayout 
     android:id="@+id/linear" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 

 LinearLayout lv = (LinearLayout)findViewById(R.id.linear); 
     TextView tv = new TextView(this); 

    tv.setLayoutParams(InformationActivity.textViewParams); 
    tv.setText(String.valueOf(info)); 
    lv.addView(tv);//not InformationActivity.tv just write tv 

Это автоматически добавит следующий вид ниже в другой

+0

Я хочу добавить текст программно во время выполнения. – SajidKhan

+0

проверить обновленные анкеты –

+0

@ShakeebShaheen Пожалуйста, не копируйте код из моего ответа. – Szymon

0

Убедитесь, что LinearLayout имеет ориентацию установлен вертикали. Тогда просто добавить еще один пункт:

LinearLayout layout = // your layout 
TextView textView = // new text view 
layout.addView(textView); 
+0

Спасибо @Szymon ... – SajidKhan

+0

Добро пожаловать! – Szymon

0

Просто сделайте Linear Layout которого oreientation является vertacal и добавить TextView к нему.

0

Вам нужен объект из основного ViewGroup (RelativeLayout, LinearLayout и т.д.),

TextView text = new TextView(this);  RelativeLayout r = (RelativeLayout)findViewById(Id);r.add(text); 

эти строки кода будет добавить новый объект TextView к концу г ViewGroup.

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