封装
来源:互联网 发布:华为mate8手机壳淘宝 编辑:程序博客网 时间:2024/06/06 12:53
BaseActivity
//////////////////////////////////////////////////////////////////////////////////////////////////////////
package animtest.com.example.e531.fengzhuang_demo;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Toast;
/**
* Created by e531 on 2017/10/17.
*/
public abstract class BaseActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
//注意 上面和下面的参数只能有一个
super.onCreate(savedInstanceState);
Log.d("zzz","base:onCreate");
//设置内容视图
setContentView(getLayout());
initView();
setListener();
initData();
}
//获取布局的id
public abstract int getLayout();
//查找页面上所有的组件
public abstract void initView();
//设置监听事件
public abstract void setListener();
//初使化数据
public abstract void initData();
//弹出吐司提示
public void getToast(String tip){
Toast.makeText(BaseActivity.this, tip, Toast.LENGTH_SHORT).show();
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BaseFragment
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
package animtest.com.example.e531.fengzhuang_demo;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* Created by e531 on 2017/10/17.
*/
public abstract class BaseFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return getFragmentLayout(inflater,container);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initData();
}
//得到fragment的视图
public abstract View getFragmentLayout(LayoutInflater inflater,ViewGroup container);
//初使化数据
public abstract void initData();
}
//////////////////////////////////////////////////////////////
BaseApplication
/////////////////////////////////////////////////////////////
package animtest.com.example.e531.fengzhuang_demo;
import android.app.Application;
/**
* Created by e531 on 2017/10/17.
*/
public class BaseApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//第三方组件的初使化
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
MainActivity
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
package animtest.com.example.e531.fengzhuang_demo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends BaseActivity {
private TextView textView;
private List<String> datas;
//返回此activity对应的布局
@Override
public int getLayout() {
return R.layout.activity_main;
}
@Override
public void initView() {
//一般写 findviewbyid的代码
textView = (TextView) findViewById(R.id.tv);
}
@Override
public void setListener() {
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//调用父类的方法
getToast("haha");
}
});
}
@Override
public void initData() {
datas=new ArrayList<>();
datas.add("1111");
//请求网络下载数据
//动态添加fragment
getSupportFragmentManager().beginTransaction().replace(R.id.lin,new NewsFragment()).commit();
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
NewsFragment
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
package animtest.com.example.e531.fengzhuang_demo;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* Created by e531 on 2017/10/17.
*/
public class NewsFragment extends BaseFragment {
//返回当前fragmetn对应的视图
@Override
public View getFragmentLayout(LayoutInflater inflater, ViewGroup container) {
return inflater.inflate(R.layout.item,container,false);
}
@Override
public void initData() {
Log.d("zzz","newsfragment:initData");
}
}