我想用TextView和按钮创建一个ListView。当我按下项目按钮时,TextView开始更新,其他文本视图也不会更新。 它应该只有项目上的textview与我点击的按钮改变。 当我在listview中滚动时,其他文本视图也会更新
另一方面,我想创建MediaPlayer并处理每首歌曲的时间。我尝试了很多方法,但都没有工作。其中一些更新随机文本,其他更新其他文本滚动时。我还尝试了每次更新(每秒)的notifydata的另一种方式,但它阻止我按下其他按钮(它挂起)。
这是我的适配器:
import java.util.ArrayList;
import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.view.View.OnClickListener;
public class Adapter_G extends BaseAdapter {
private static ArrayList<Cool_Item_G> itemDetailsrrayList;
private Handler durationHandler;
private LayoutInflater l_Inflater;
Context context2;
TextView texts;
int cn = 0;
public Adapter_G(Context context, ArrayList<Cool_Item_G> results) {
itemDetailsrrayList = results;
l_Inflater = LayoutInflater.from(context);
context2 = context;
durationHandler = new Handler();
}
public int getCount() {
try {
return itemDetailsrrayList.size();
} catch (Exception e) {
return 0;
}
}
public Object getItem(int position) {
return itemDetailsrrayList.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = l_Inflater.inflate(R.layout.zerk_item, null);
holder = new ViewHolder();
holder.go = (ImageView) convertView.findViewById(R.id.go);
holder.cool = (TextView) convertView.findViewById(R.id.Cool);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.Cool.setText("" + itemDetailsrrayList.get(position).z);
holder.go.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
goNow(position, holder.Cool);
}
});
return convertView;
}
static class ViewHolder {
TextView cool;
ImageView go;
}
Handler m_handler;
int zs = 0;
Runnable m_handlerTask = null;
public void goNow(final int position, final TextView text) {
m_handler = new Handler();
m_handlerTask = new Runnable() {
@Override
public void run() {
text.setText("" + zs);
zs++;
m_handler.postDelayed(m_handlerTask, 1000);
}
};
m_handlerTask.run();
}
}
答案 0 :(得分:1)
尝试更改此
text.setText("" + zs);
zs++;
到
itemDetailsrrayList.get(position).z += itemDetailsrrayList.get(position).z;
notifyDataSetChanged();