2013-09-23 48 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结束。

相关问题