Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 通过onClickListener查找选定的已解析数据以切换播放(&A);暂停按钮_Android_Android Asynctask_Android Json - Fatal编程技术网

Android 通过onClickListener查找选定的已解析数据以切换播放(&A);暂停按钮

Android 通过onClickListener查找选定的已解析数据以切换播放(&A);暂停按钮,android,android-asynctask,android-json,Android,Android Asynctask,Android Json,我正在开发一款储存铃声的应用程序。。我更新mysql数据库中新铃声的内容。。 我正在尝试创建播放和暂停开关按钮。。 现在我的问题是我找不到确切的选定项目。。 正如箭头所示,当我点击每个播放按钮时,第一个按钮就会启动 这是迄今为止的代码: public class ListActivity extends AppCompatActivity implements AsyncResponse ,AdapterView.OnItemClickListener{ private boolean pa

我正在开发一款储存铃声的应用程序。。我更新mysql数据库中新铃声的内容。。 我正在尝试创建播放和暂停开关按钮。。 现在我的问题是我找不到确切的选定项目。。

正如箭头所示,当我点击每个播放按钮时,第一个按钮就会启动

这是迄今为止的代码:

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){
    Toast.makeText(ListActivity.this, "Network Error", Toast.LENGTH_LONG).show();


    ImageButton button = (ImageButton ) findViewById(R.id.ivShare);
    int icon;

    if (paused) {
        paused = false;
        icon = R.drawable.ic_pause;
    }
    else {
        paused = true;
        icon = R.drawable.ic_play;
    }

    button.setImageDrawable(
        ContextCompat.getDrawable(getApplicationContext(), icon));

  }



}
公共类ListActivity扩展AppCompatActivity实现异步响应
,AdapterView.OnItemClickListener{
private=true;
网址;
位图bmImg=null;
公共静态最终整数通知_ID=1;
最终字符串LOG=“ListActivity”;
私有ArrayList产品列表;
私有ListView产品;
私人基金适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.d\u活动\u列表\u d);
ImageLoader.getInstance().init(UILConfig.config(ListActivity.this));
PostResponseAsyncTask taskRead=新的PostResponseAsyncTask(ListActivity.this,this);
taskRead.execute(“http://symphonyrecords.6te.net/product.php");
lvProduct=(ListView)findViewById(R.id.lvProduct);
registerForContextMenu(lvProduct);
}//一次创建
@凌驾
public void onCreateContextMenu(ContextMenu菜单,视图v,ContextMenu.ContextMenuInfo菜单信息){
super.onCreateContextMenu(menu,v,menuInfo);
MenuInflater充气机=getMenuInflater();
充气机。充气(右菜单。列表\上下文菜单,菜单);
}
@凌驾
公共布尔值onContextItemSelected(MenuItem项){
AdapterView.AdapterContextMenuInfo信息=(AdapterView.AdapterContextMenuInfo)项。getMenuInfo();
最终产品selectedProduct=adapter.getItem(信息位置);
Log.d(Log,selectedProduct.name);
if(item.getItemId()==R.id.menuUpdate){
Intent in=新的Intent(ListActivity.this,DetailActivity.class);
在.putExtra中(“产品”,选择的产品);
星触觉(in);
}
返回super.onContextItemSelected(项目);
}
@凌驾
公共void processFinish(字符串s){
productList=new JsonConverter().toArrayList(s,Product.class);
BindDictionary dict=新建BindDictionary();
dict.addStringField(R.id.tvName,新StringExtractor(){
@凌驾
公共字符串getStringValue(产品,int位置){
返回产品名称;
}
});
适配器=新的FunDapter(
ListActivity.this、productList、R.layout.d\u layout\u list\u d、dict);
lvProduct.setAdapter(适配器);
lvProduct.setOnItemClickListener(this);
}
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Product Selected Product=productList.get(位置);
}
公共无效播放和暂停(视图1){
Toast.makeText(ListActivity.this,“网络错误”,Toast.LENGTH_LONG.show();
ImageButton按钮=(ImageButton)findViewById(R.id.ivShare);
int图标;
如果(暂停){
暂停=错误;
icon=R.drawable.ic\u暂停;
}
否则{
暂停=真;
icon=R.drawable.ic\u播放;
}
button.setImageDrawable(
getDrawable(getApplicationContext(),icon));
}
}
(考虑到这些代码,如果您有更好的方法来做这件事,或者有一个获得所选项目的想法,我将不胜感激)。。谢谢。

在getView方法中的适配器中:

        Product m =(Product) mDataItems.get(position);
    holder.playPause.setImageResource(m.getPlayPauseId());
    holder.playPause.setTag(position);
    holder.playPause.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                int pos = (Integer) v.getTag();
                Product m =(Product) mDataItems.get(pos);
                if (paused) {
                m.setPlayPauseId(R.drawable.ic_pause);
                paused=false;
                }else {
                 m.setPlayPauseId(R.drawable.ic_play);
                 paused = true;
                }
                FunDapter.this.notifyDataSetChanged();


        }


    });