mAdapter = new BaseAdapter() {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item_layout, null);
//得到当前item需要从convertView中得到
mItemListViewTextView = (TextView) convertView.findViewById(R.id.item_list_textView);
Log.d("xiaoxi","mItemList.get(position): " + mItemList.get(position));
mItemListViewTextView.setText(mItemList.get(position));
return convertView;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public int getCount() {
return mItemList.size();
}
};
error
java.lang.IllegalStateException: The specified message queue synchronization barrier token has not been posted or has already been removed.
E/AndroidRuntime(21583): at android.os.MessageQueue.removeSyncBarrier(MessageQueue.java:289)
E/AndroidRuntime(21583): at android.os.Looper.removeSyncBarrier(Looper.java:275)
E/AndroidRuntime(21583): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:988)
E/AndroidRuntime(21583): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5600)
E/AndroidRuntime(21583): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
E/AndroidRuntime(21583): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
E/AndroidRuntime(21583): at android.view.Choreographer.doFrame(Choreographer.java:544)
E/AndroidRuntime(21583): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
E/AndroidRuntime(21583): at android.os.Handler.handleCallback(Handler.java:733)
E/AndroidRuntime(21583): at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(21583): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(21583): at android.app.ActivityThread.main(ActivityThread.java:5001)
E/AndroidRuntime(21583): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(21583): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(21583): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/AndroidRuntime(21583): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
E/AndroidRuntime(21583): at dalvik.system.NativeStart.main(Native Method)
还是需要注意
‘Message msg = mMainHandler.obtainMessage();
msg.what = MainHandler.MSG_AUDIO_TRACK_UPDATE;
mMainHandler.sendMessage(msg);’
———————————————
Error:
The specified message queue synchronization barrier token has not been posted or has already been removed
发三次消息,每次都要新的message对象
Message msg_conn = mMainHandler.obtainMessage(MainHandler.MSG_IAP_CONNECT);
mMainHandler.sendMessage(msg_conn);
Message msg = mMainHandler.obtainMessage(MainHandler.MSG_AUDIO_TRACK_UPDATE);
mMainHandler.sendMessage(msg);
msg = mMainHandler.obtainMessage(MainHandler.MSG_MEDIA_INFO_UPDATE);
mMainHandler.sendMessage(msg);
error:
The method setSelectItem(int) is undefined for the type BaseAdapter
匿名类找不到自定义的方法
———-
ImageView设置背景颜色
ImageView.setBackgroundColor(android.graphics.Color.parseColor(“#ffffff”));
ImageView.setBackgroundColor(Color.RED);
ImageView.setBackgroundColor(Color.rgb(255, 0, 0));
———-
Long型数据比较
‘long listIdentifier = ((Long) mMediaItemList.get(i).get( 320
MediaItemAttributes.MEDIA_ITEM_PERSISTENT_IDENTIFIER)).longValue();’
例子:
private void updateListViewSelected() {
MediaItemAttributes currentMediaItemAttributes = mAudioTrackProxy.getCurrentMediaItemAttributes();
if (mMediaItemList != null && currentMediaItemAttributes != null) {
synchronized (mMediaItemListLock) {
for (MediaItemAttributes mediaItemAttributes : mMediaItemList) {
long listIdentifier = ((Long) mediaItemAttributes
.get(MediaItemAttributes.MEDIA_ITEM_PERSISTENT_IDENTIFIER)).longValue();
Long itemIdentifier = (Long) currentMediaItemAttributes
.get(MediaItemAttributes.MEDIA_ITEM_PERSISTENT_IDENTIFIER);
long currentIdentifier = 0;
if (itemIdentifier != null) {
currentIdentifier = itemIdentifier.longValue();
}
Log.d(TAG, "listIdentifier:" + listIdentifier);
Log.d(TAG, "currentIdentifier:" + currentIdentifier);
if (listIdentifier == currentIdentifier) {
mListViewAdapter.setSelectItem(mMediaItemList.indexOf(mediaItemAttributes));
}
}
}
}
}
2016.02.22
private class ListViewAdapter extends BaseAdapter {
private int selectItem;
@Override
public int getCount() {
return mItemArrayList != null ? mItemArrayList.size() : 0;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// enhancement
ViewHolder viewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item_layout, null);
// get current view from convertView
viewHolder = new ViewHolder();
viewHolder.mTextView = (TextView) convertView.findViewById(R.id.item_list_textView);
viewHolder.mTextView.setText(mItemArrayList.get(position));
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
viewHolder.mTextView.setText(mItemArrayList.get(position));
}
if (selectItem == position) {
convertView.setBackgroundColor(convertView.getResources().getColor(android.R.color.darker_gray));
} else {
convertView.setBackgroundColor(convertView.getResources().getColor(android.R.color.transparent));
}
return convertView;
}
private class ViewHolder {
public TextView mTextView;
}
public void setSelectItem(int i) {
selectItem = i;
notifyDataSetChanged();
}
}
getCount()
———-
0223
如果log一直是一个诡异的错误尝试Terminal clear and reset并重新启动,注意adb logcat后再链接设备再erminal clear and reset
———-
0225
编译报错:
make: Entering directory /home/b855/Desktop/3c11/saimx6r2'
/home/b855/Desktop/3c11/saimx6r2
build/core/base_rules.mk:134: *** mfi/bitbucket_iAp2/iap2-android/MusicDemo2/bin: MODULE.TARGET.APPS.MusicDemo2 already defined by mfi/bitbucket_iAp2/iap2-android/MusicDemo2. Stop.
make: Leaving directory
解决方案:删除eclipse中编译生成的bin目录
2016.03.01
‘No rule to make target , IYingshiService.aidl needed by IYingshiService.java的解决办法 ‘
解决办法:
进入以下两个目录
/home/yanleiming/dev_a20/out/target/common/obj/JAVA_LIBRARIES
/home/yanleiming/dev_a20/out/target/common/obj/APPS
删除与当前编译的app相关的文件 ,再进行mm -B即ok