編輯:關於Android編程
說明第一下:按照前面的方式我們創建了項目,如果使用的是最新的ADT,Minimum Android SDK選的是android2.*或1.*,此時會默認創建一個兼容的項目,——appcompat_v7,這個項目還是不能刪除的,刪除會報錯。。
說明第二下:項目創建好了之後,發現layout文件夾(布局)中會有默認兩個文件:adtivity和fragment文件:
1、Fragment概述:
Fragment意思為碎片,片段,說白了就是模塊,說道模塊,就不用我多說了。。
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+zNjV96O6PC9wPgo8cD48L3A+CjxibG9ja3F1b3RlPgo8cD5GcmFnbWVudNfcysehsMe2yOuhsWFjdGl2aXR51tDKudPDtcSjrNf3zqphY3Rpdml0edbQtcS958Pm1+mzybK/t9ajuzwvcD4KPHA+0ru49mFjdGl2aXR5v8nS1LD8uqy24Lj2RnJhZ21lbnSjrNK7uPZGcmFnbWVudNKyv8nS1LG7tuC49mFjdGl2aXR5uLTTw6O7PC9wPgo8cD5GcmFnbWVudL/J0tTP7NOm19S8urXEysK8/qOs0rLTtdPQ19S8urXEyfrD/NbcxtqhozwvcD4KPC9ibG9ja3F1b3RlPgrK18/IztLDx8/Iv7TSu8/CztLDx9KqtO+1vcqyw7TSqsfzo7oKPHA+PC9wPgo8cD48aW1nIHNyYz0="/uploadfile/Collfiles/20140529/2014052909233527.jpg" alt="\">
2、fragment_main.xml文件:
內容如下:
在fragment中定義了兩個按鈕和一個文本顯示,以及在activity中也定義了一個文本顯示,點擊fragment不同按鈕控制文本顯示。
activity_main.xml內容如下:
3、創建MainFragment.java類:
package com.javen.xresource.activity.fragment; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import com.javen.xresource.activity.R; public class MainFragment extends Fragment { private TextView fragmentTextView; private Button button; public MainFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); //使用fragment_main.xml初始化Fragment button = (Button) rootView.findViewById(R.id.btn); //獲取Fragment中的Button fragmentTextView = (TextView) rootView.findViewById(R.id.ftxv); //獲取Fragment中的TextView button.setOnClickListener(new OnClickListener() { //設置按鈕的監聽事件 @Override public void onClick(View v) { fragmentTextView.setText("我被fragment點擊了..."); } }); return rootView; } }
代碼如下:
package com.javen.xresource.activity; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { private Button button; private TextView activityTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /*if (savedInstanceState == null) { getFragmentManager().beginTransaction() .add(R.id.container, new MainFragment()).commit(); //java代碼方式在activity中嵌入Fragment,與前面xml方式一樣 }*/ activityTextView = (TextView) findViewById(R.id.atxv); //獲取activity中的TextView Fragment fragment = getFragmentManager().findFragmentById(R.id.mft); //獲取activity中的fragment button = (Button) fragment.getView().findViewById(R.id.btn2); //獲取fragment中的Button2 button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { activityTextView.setText("我被activity點擊了..."); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
6、問題來了:Button2 改變activity中TextView的操作能不能放在Fragment?--> 延伸出:Fragment能不能與Activity通信?
衍生問題後面再說,通信肯定是可以的。
至於對TextView的操作都放在Fragment中。。。本人嘗試過,使用:
getActivity().findViewById(R.id.atxv);
至於原因?歡迎大家發表評論來討論這個問題。。。
上一節通訊錄原型的實現(-)中,將到了最基本最簡單的通訊錄的實現,這節就講講類似QQ好友列表的分組名稱懸浮在最頂部的實現。我的基本實現思路如下:1.使用Expandabl
Android基礎入門教程——10.8 LayoutInflater(布局服務)標簽(空格分隔): Android基礎入門教程本節引言: 本節繼
想自己做個apk,還在為素材而苦惱嗎?看到優秀的apk設計,還在為怎麼看到別人的實現代碼而苦惱嗎?看著AndroidStudio 多渠道打包那麼爽,而自己坑爹的還在用Ec
Adapter相當於一個數據源,可以給AdapterView提供數據,並根據數據創建對應的UI,可以通過調用AdapterView的setAdapter方法使得Adapt