2013-09-23 121 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 = new 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

添加新的textview我想在運行時以編程方式添加文本。 – SajidKhan

+0

支票更新ans –

+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對象添加到R的ViewGroup結束。

相關問題