package com.yokmama.learn10.chapter07.lesson33;
import android.os.Bundle;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.RadioGroup;
import android.widget.Toast;
import com.yokmama.learn10.chapter07.lesson33.adapter.MyGridAdapter;
import com.yokmama.learn10.chapter07.lesson33.adapter.MyListAdapter;
import com.yokmama.learn10.chapter07.lesson33.adapter.MyStaggeredAdapter;
import com.yokmama.learn10.chapter07.lesson33.item.BaseItem;
import java.util.List;
public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<List<BaseItem>> {
private ListView mListView;
private RadioGroup mListType;
private List<BaseItem> mItems;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListType = (RadioGroup) findViewById(R.id.listType);
mListType.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
getSupportLoaderManager().restartLoader(0, null, MainActivity.this);
}
});
mListView = (ListView)findViewById(R.id.listView);
//RecyclerViewにクリック処理とロングクリック処理を設定
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
BaseItem item = mItems.get(position);
Toast.makeText(MainActivity.this, "Click " + item.getName(), Toast.LENGTH_SHORT).show();
}
});
mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
BaseItem item = mItems.get(position);
Toast.makeText(MainActivity.this, "Long Click " + item.getName(), Toast.LENGTH_SHORT).show();
return false;
}
});
getSupportLoaderManager().initLoader(0, null, this);
updateAdapter();
}
@Override
public void onDestroy() {
getSupportLoaderManager().destroyLoader(0);
super.onDestroy();
}
@Override
public Loader<List<BaseItem>> onCreateLoader(int id, Bundle args) {
return new SampleDataGenerator(getApplicationContext(), -1);
}
@Override
public void onLoadFinished(Loader<List<BaseItem>> loader, List<BaseItem> data) {
mItems = data;
updateAdapter();
}
@Override
public void onLoaderReset(Loader<List<BaseItem>> loader) {
}
private void updateAdapter() {
mListView.setAdapter(new MyListAdapter(this, mItems));
}
}