編輯:Android開發教程
到目前為止,在所有的章節中,我們所看見的UI都是通過XML來實現的。之前也提及過,除了使用XML,也 可以使用代碼來實現UI界面。這個方式是很有用的,比如你的UI需要在運行時被生成。舉個例子,假設你在 編寫一個“電影票的預定系統”,你的程序使用按鈕Buttons去顯示每個電影院的座位。在這種情況下,你就 會需要依據實際情況去動態地生成UI。
下面的例子將會展示如何通過編碼,動態地在Activity中生成 UI。
1. 創建一個工程:UICode。
2. UICodeActivity.java中的代碼。
public class UICodeActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.main); LayoutParams params = new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); TextView tv = new TextView(this); tv.setText("This is a TextView"); tv.setLayoutParams(params); Button btn = new Button(this); btn.setText("This is a Button"); btn.setLayoutParams(params); layout.addView(tv); layout.addView(btn); LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT ); this.addContentView(layout, layoutParam); } }
3. 按F11調試,效果圖如下。
在這個例子中,首先要把setContentView()方法注釋掉,目的是不讓Activity去加載main.xml中的UI視圖。
然後,創建一個LayoutParams對象,這個對象指定了布局的屬性。
LayoutParams params = new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
也要創建一個LinearLayout對象,這個對象包含了 activity中的所有視圖。
LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL);
然後,創建一個TextView和一個Button。
TextView tv = new TextView(this); tv.setText("This is a TextView"); tv.setLayoutParams(params); Button btn = new Button(this); btn.setText("This is a Button"); btn.setLayoutParams(params);
然後,把它們加到LinearLayout對象中去。
layout.addView(tv); layout.addView(btn);
同時,也要創建一個LayoutParams對象,供LinearLayout對象使用。
LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT );
最後,把這個LinearLayout對象添加到Activity中去 。
this.addContentView(layout, layoutParam);
最近在考慮為已經有的一個應用程序增加一個用戶反饋的功能,用戶可以通過反饋功能將用戶的意見和建議、程序出現的問題以一種更符合用戶習慣的方式反饋回來。網上也有一些實現好的反饋
這裡我們使用類比的方法,將 PreferenceActivity 與一般的Activity 作個類比,可以更好的理解Android.Preference中的 各個類。
一、為何寫作本文在慢慢深入接觸android開發的過程中,我越來越發現android中(至少應用曾的開發)用到了很多回調的思想。比如activity的生命周期,fragm
即便是無法說服Android各大廠商放棄物理導航鍵設計,但谷歌似乎已決定至少先讓Android設備擺脫電容式導航鍵的“困擾”。我們知道,谷歌是在推
如果你升級ADT升級到17,發現原先的應用無法啟動,出現alvikvm(