package com.cheng.improve151suggest;
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 java.util.Arrays;
import java.util.List;
import com.cheng.highqualitycodestudy.R;
import com.cheng.improve151suggest.adapter.I151SuggestListAdapter;
/**
* 《编写高质量代码:改善java程序的151个建议》
*/
public class I151SuggestActivity extends AppCompatActivity {
private ListView mChaptersLV;
private I151SuggestListAdapter mI151SuggestListAdapter;
private SparseArray<Class> mClazzes;
private int mClazzesLength;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_i151suggest);
initView();
initData();
initListener();
}
private void initView() {
this.mChaptersLV = (ListView) this.findViewById(R.id.isi_chapters_lv);
}
private void initData() {
String[] chapters = getResources().getStringArray(R.array.i151schapters);
String[] chapterClazzes = getResources().getStringArray(R.array.i151schapterClazzes);
int chaptersLen = chapters.length;
List<String> chaptersList = Arrays.asList(chapters);
mClazzesLength = chaptersLen;
mI151SuggestListAdapter = new I151SuggestListAdapter(this, chaptersList);
mClazzes = new SparseArray<>();
mChaptersLV.setAdapter(mI151SuggestListAdapter);
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(I151SuggestActivity.this, mClazzes.get(position));
startActivity(intent);
}
});
}
}