編輯:關於Android編程
上一篇文章簡單介紹了Android的回調機制的使用,這一篇博文將重點介紹Fragment碎片與activity的數據交互,fragment在Android開發中起著至關重要的作用,通過官方Android api我們可以看到,fragment有著自己的生命周期並依賴於它綁定的activity的生命周期而存在,那樣activity與fragment怎樣進行數據交互呢,請看此篇博文。
MainActiivity的代碼
package com.example.f08_fragment03; import com.example.f08_fragment03.Fragment02.Callback; import android.os.Bundle; import android.app.Activity; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { private FragmentManager manager;// 創建fragment管理 private FragmentTransaction transaction;// 創建fragment的事物 private EditText editText; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) this.findViewById(R.id.editText2); button = (Button) this.findViewById(R.id.button1); manager = getFragmentManager(); transaction = manager.beginTransaction(); final Fragment02 fragment02 = new Fragment02(); transaction.add(R.id.left, fragment02, "left"); transaction.commit(); // 不管要實現怎樣的功能都必須調用以下三個方法 // manager=getFragmentManager(); //transaction=manager.beginTransaction(); // transaction.commit();提交數據 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub //通過callback機制得到fragment的數據 fragment02.getString(new Callback() { @Override public void getString(String msg) { // TODO Auto-generated method stub editText.setText(msg); } }); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }Fragment02的代碼
package com.example.f08_fragment03; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; public class Fragment02 extends Fragment { private Button button; private EditText editText; @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); } @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); } // 在該方法中更新UI @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.left, null); button = (Button) view.findViewById(R.id.button1); editText = (EditText) view.findViewById(R.id.editText1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { //通過getActivity方法得到activity的控件,以此可以得到數據 EditText eText = (EditText) getActivity().findViewById( R.id.editText2); Log.i("info", "------->" + eText.getText().toString()); editText.setText(eText.getText().toString()); } }); return view; } @Override public void onStart() { // TODO Auto-generated method stub super.onStart(); } @Override public void onResume() { // TODO Auto-generated method stub super.onResume(); } @Override public void onPause() { // TODO Auto-generated method stub super.onPause(); } //實現數據傳遞 public void getString(Callback callback) { String msg = editText.getText().toString(); callback.getString(msg); } //創建接口 public interface Callback { public void getString(String msg); } }
前段時間在寫直播的時候,需要觀眾在看直播的時候點贊的效果,在此參照了騰訊大神寫的點贊(飄心動畫效果)。下面是效果圖:1.自定義飄心動畫的屬性在attrs.xml 中增加自
有的時候我們需要為一個listview設置固定的數據,下邊就是如何設置靜態的數據布局文件listview 的主頁面 然後的一個布局文件為每一個listview的item,
在上一篇文章中,我們實現了新建單板,時鐘 sdram 等一系列初始化工作,串口已經能正確輸出打印信息,但是有錯誤信息。現在,我們就來解決問題。搜索“Flash
這篇介紹第二種自定義View方法,創建復合控件。創建復合控件創建復合控件可以很好地創建出具有重用功能的控件集合。這種方式通常需要繼承一個合適的ViewGroup,再給它添