編輯:關於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);
}
}
android 飄心動畫(直播點贊)效果
前段時間在寫直播的時候,需要觀眾在看直播的時候點贊的效果,在此參照了騰訊大神寫的點贊(飄心動畫效果)。下面是效果圖:1.自定義飄心動畫的屬性在attrs.xml 中增加自
Android中如何為ListView設置靜態數據
有的時候我們需要為一個listview設置固定的數據,下邊就是如何設置靜態的數據布局文件listview 的主頁面 然後的一個布局文件為每一個listview的item,
移植u-boot2012.04.1 -》2440 (二)norflash 識別
在上一篇文章中,我們實現了新建單板,時鐘 sdram 等一系列初始化工作,串口已經能正確輸出打印信息,但是有錯誤信息。現在,我們就來解決問題。搜索“Flash
自定義View(二)(Android群英傳)
這篇介紹第二種自定義View方法,創建復合控件。創建復合控件創建復合控件可以很好地創建出具有重用功能的控件集合。這種方式通常需要繼承一個合適的ViewGroup,再給它添