0
mysqlデータベースから収集したデータがリストビュー(これは着信音アプリ)になりました..選択されたアイテムの再生imageButonでonClickListenerを設定する必要があります。 私はonClickListenerが、私は選択した項目... 選択したアイテムのOnClickListenerを設定しました
のためにそれを設定する方法を知らない、この場合、これは私がこれまでにやっていることです:
public class ListActivity extends AppCompatActivity implements AsyncResponse
,AdapterView.OnItemClickListener{
private boolean paused = true;
URL url;
Bitmap bmImg = null;
public static final int NOTIFICATION_ID = 1;
final String LOG = "ListActivity";
private ArrayList<Product> productList;
private ListView lvProduct;
private FunDapter<Product> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.d_activity_list_d);
ImageLoader.getInstance().init(UILConfig.config(ListActivity.this));
PostResponseAsyncTask taskRead = new PostResponseAsyncTask(ListActivity.this, this);
taskRead.execute("http://symphonyrecords.6te.net/product.php");
lvProduct = (ListView)findViewById(R.id.lvProduct);
registerForContextMenu(lvProduct);
}//onCreate
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.list_context_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
final Product selectedProduct = adapter.getItem(info.position);
Log.d(LOG, selectedProduct.name);
if(item.getItemId() == R.id.menuUpdate){
Intent in = new Intent(ListActivity.this, DetailActivity.class);
in.putExtra("product", selectedProduct);
startActivity(in);
}
return super.onContextItemSelected(item);
}
@Override
public void processFinish(String s) {
productList = new JsonConverter<Product>().toArrayList(s, Product.class);
BindDictionary<Product> dict = new BindDictionary<Product>();
dict.addStringField(R.id.tvName, new StringExtractor<Product>() {
@Override
public String getStringValue(Product product, int position) {
return product.name;
}
});
adapter = new FunDapter<>(
ListActivity.this, productList, R.layout.d_layout_list_d, dict);
lvProduct.setAdapter(adapter);
lvProduct.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Product selectedProduct = productList.get(position);
}
public void playAndPause(View view1){
ImageButton button = (ImageButton) findViewById(R.id.playPause);
int icon;
if (paused) {
paused = false;
icon = R.drawable.ic_pause;
Toast.makeText(ListActivity.this, "Playing", Toast.LENGTH_LONG).show();
}
else {
paused = true;
icon = R.drawable.ic_play;
Toast.makeText(ListActivity.this, "Stopped", Toast.LENGTH_LONG).show();
}
button.setImageDrawable(
ContextCompat.getDrawable(getApplicationContext(), icon));
}
}
アダプタークラスのコードを投稿 –
私は外部ライブラリ(FunDapter)を使用しました。 – Mehran
次にできません。なぜあなたはビューを表示するためだけに他のアダプタを使用する必要がありますか?可能であれば、独自のアダプターを作ってください。または、そのアダプタに参照を与えるコールバックがあるかもしれません –