package com.cheng.bigtalkdesignpatterns;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.SparseArray;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import com.cheng.designpatternstudy.R;
import com.cheng.bigtalkdesignpatterns.listadapter.BigTalkDesignPatternsListAdapter;
import java.util.Arrays;
import java.util.List;
/**
* 《大话设计模式》
*/
public class BigTalkDesignPatternsActivity extends AppCompatActivity {
private ListView mChaptersLV;
private BigTalkDesignPatternsListAdapter mBTDPListAdapter;
private SparseArray<Class> mClazzes;
private int mClazzesLength;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bigtalk_designpatterns);
initView();
initData();
initListener();
}
private void initView() {
this.mChaptersLV = (ListView) this.findViewById(R.id.bti_chapters_lv);
}
private void initData() {
String[] chapters = getResources().getStringArray(R.array.btdpchapters);
String[] chapterClazzes = getResources().getStringArray(R.array.btdpchapterClazzes);
int chaptersLen = chapters.length;
List<String> chaptersList = Arrays.asList(chapters);
mClazzesLength = chaptersLen;
mBTDPListAdapter = new BigTalkDesignPatternsListAdapter(this, chaptersList);
mClazzes = new SparseArray<>();
mChaptersLV.setAdapter(mBTDPListAdapter);
try {
for (int i = 0; i < chaptersLen; i++) {
mClazzes.put(i, Class.forName(chapterClazzes[i]));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
private void initListener() {
mChaptersLV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (mClazzesLength <= position) return;
if (mClazzes.get(position) == null) return;
Intent intent = new Intent(BigTalkDesignPatternsActivity.this, mClazzes.get(position));
startActivity(intent);
}
});
}
}