編輯:關於Android編程
說明:
RecyclerView是support-v7包中的新組件,你可以使用該組件替代ListView和CridView,從命名可以看出RecyclerView會自動回收Item,它並不關心Item的樣式,Item的數據。
那麼要使用RecyclerView要做哪些准備工作呢?
1、既然RecyclerView是support-v7包中的組件,那麼我們的SDK上肯定要下載有support-v7這個包,我們打開sdkextrasandroidsupport7
目錄可以發現有一個recyclerview這個文件夾,
沒錯這就是我們今天要使用的RecyclerView。
2、我們在build.gradle文件中添加:
dependencies {
compile fileTree(dir: 'libs', include:['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:recyclerview-v7:22.2.1'
}
PS:Eclipse用戶可以導入RecyclerView這個project,然後將自己的project依賴於RecyclerView這個project
到這裡我們的准備工作就做完了,接下來就開始編代碼了。
在布局文件中添加:
對,沒錯這樣我們就往布局中添加了一個RecyclerView控件
Activity代碼:
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = (RecyclerView)findViewById(R.id.recyclerView);
//線性布局管理器
LinearLayoutManager llmh = new LinearLayoutManager(this);
//設置為橫向
llmh.setOrientation(LinearLayoutManager.HORIZONTAL);
//線性布局管理器
LinearLayoutManager llmv = new LinearLayoutManager(this);
//設置為縱向
llmv.setOrientation(LinearLayoutManager.VERTICAL);
// 網格布局管理器,第二參數為指定幾列
GridLayoutManager glm = new GridLayoutManager(this, 3);
//流式布局管理器,第一個參數為設置為幾列,第二個參數為排列方式
StaggeredGridLayoutManager sglm =
new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL);
//設置RecyclerView的布局管理器
mRecyclerView.setLayoutManager(sglm);
//設置數據源
List
RecycleAdapter代碼:
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;
import java.util.Map;
public class RecycleAdapter extends RecyclerView.Adapter{
private List> mData;
public RecycleAdapter(List> data){
this.mData = data;
}
class ViewHolder extends RecyclerView.ViewHolder{
private TextView tv;
public ViewHolder(View v){
super(v);
this.tv = (TextView)v.findViewById(R.id.tv);
}
}
@Override
public int getItemCount() {
return mData.size();
}
//填充數據
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.tv.setText(mData.get(position).get(text)+);
holder.tv.setTag(mData.get(position).get(text)+);
//設置監聽事件
holder.tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(mContext,view.getTag()+,Toast.LENGTH_SHORT).show();
}
});
}
//創建ViewHolder
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int position) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View v = inflater.inflate(R.layout.item_layout, parent, false);
ViewHolder vh = new ViewHolder(v);
return vh;
}
}
item_layout.xml:
到此為止,代碼編寫完畢,以下是效果圖:
當應用安裝到Android後,系統會根據每個應用的包名創建一個/data/data/包名/的文件夾,訪問自己包名下的目錄是不需要權限的,並且Android已經提供了非常簡
今天筆記本上開發再次遇到這個問題,經過確認eclipse indigo版本和ibus1.3.11確實有沖突。具體表現是eclipse裡按ctrl+空格,輸入法死活不出來。
好吧,終於要開始講解Activity的啟動流程了,Activity的啟動流程相對復雜一下,涉及到了Activity中的生命周期方法,涉及到了Android體系的CS模式,
自己寫db文件方法有兩種:1、用sql server2005+sqlserver2sqlite_converter工具(數據在sql server裡面寫)2、用Excel