package com.cheng.zenofdesignpatterns;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import com.cheng.designpatternstudy.R;
import com.cheng.zenofdesignpatterns.listadapter.ZenofDesignPatternsListAdapter;
import java.util.Arrays;
import java.util.List;
public class ZoDPPartsActivity extends AppCompatActivity {
private TextView mTitleTV;
private ListView mChaptersLV;
private int mPartNum;
private int[] mPartArrayIDs = {
R.array.zodppart1, R.array.zodppart2,
R.array.zodppart3, R.array.zodppart4,
R.array.zodppart5};
private int[] mPartChapterArrayIDs = {
R.array.zodppart1chapterClazzes,
R.array.zodppart2chapterClazzes,
R.array.zodppart3chapterClazzes,
R.array.zodppart4chapterClazzes,
R.array.zodppart5chapterClazzes};
private Class[] mChapterClazzes;
private int mClazzesSize;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zodp_parts);
initView();
initData();
initListener();
}
private void initView() {
this.mTitleTV = (TextView) this.findViewById(R.id.zoi_title_tv);
this.mChaptersLV = (ListView) this.findViewById(R.id.zoi_chapters_lv);
}
private void initData() {
String partname = this.getIntent().getStringExtra("partname");
mPartNum = this.getIntent().getIntExtra("partnum", 0);
this.mTitleTV.setText(partname);
String[] chapters = getResources().getStringArray(mPartArrayIDs[mPartNum]);
List<String> chaptersList = Arrays.asList(chapters);
ZenofDesignPatternsListAdapter adapter = new ZenofDesignPatternsListAdapter(this, chaptersList);
this.mChaptersLV.setAdapter(adapter);
// 通过读取Array中的配置调整
String[] chapterClazzStrs = getResources().getStringArray(mPartChapterArrayIDs[mPartNum]);
int size = chapterClazzStrs.length;
mClazzesSize = size;
mChapterClazzes = new Class[size];
for (int i = 0; i < size; i++) {
try {
mChapterClazzes[i] = Class.forName(chapterClazzStrs[i]);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
private void initListener() {
this.mChaptersLV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (mClazzesSize <= position) return;
if (mChapterClazzes[position] == null) return;
Intent intent = new Intent(ZoDPPartsActivity.this, mChapterClazzes[position]);
startActivity(intent);
}
});
}
}