我正在尝试为每个列出的项目创建一个具有不同图像和文本的列表框.我尝试创建两个setListAdapter,一个用于显示文本字符串,另一个用于图像名称.它不起作用,我假设还有另一种方法可以做到这一点.
我列出的CTICTY类
public class cFashions extends ListActivity {
TextView selection;
// list to fill list box wi*/
/*
String[] items={"CASUAL","DR ESSES","CAREER","OUTWEAR","FOOTWEAR",
"JEWELRY","ACCESSORIES"};
*/
String[] items={"CASUAL"};
String[] icons={"icon"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fashions);
setListAdapter(new ArrayAdapter<String>(this,
R.layout.row, R.id.label,
items));
setListAdapter(new ArrayAdapter<String>(this,
R.layout.row, R.id.icon,
icons));
selection=(TextView)findViewById(R.id.selection);
}
}
Run Code Online (Sandbox Code Playgroud)
列表中每个单元格的XML文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/icon"
android:layout_width="22px"
android:paddingLeft="2px"
android:paddingRight="2px"
android:paddingTop="2px"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp" …Run Code Online (Sandbox Code Playgroud) 布局XML是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/translucenter_dark" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="200dip"
>
<ProgressBar android:id="@+id/progressBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
></ProgressBar>
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
最终的布局是:

为什么progressBar没有垂直和水平放在中心.它是一个功能还是一个bug :)
我正在尝试制作一个LazyList EndlessList但是使用一个分段适配器......这些部分将是将从Internet下载的项目页面.
我试图使用MergeAdapter或不推荐使用的SectionedAdapter(Mark Murphy)来实现它的基本要点.但是我面临着两个问题.
1)使用SectionedAdapter,它加载第一页正常,但在第二页上我遇到了这个例外.
Uncaught handler: thread main exiting due to uncaught exception
java.lang.ArrayIndexOutOfBoundsException
at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:3572)
at android.widget.AbsListView.trackMotionScroll(AbsListView.java:2487)
at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:2353)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
经过几个小时的研究,我意识到这与错误的getViewTypeCount()价值有关.但我不知道如何正确实现它.
2)然后我尝试使用MergeAdapter,但这简直使情况变得更糟,甚至部分也以随机间隔出现.
我写了一个小示例程序,只是为了显示我的实现.
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class LazySectionListActivity extends ListActivity implements
OnScrollListener …Run Code Online (Sandbox Code Playgroud) 我尝试使用由alexbirkett编辑的commonsware的locationpoller,但有时广播会超时并终止应用程序
\n\n这是我的日志猫
\n\nWindowManager( 299): rotationForOrientationLw(orient=4, last=0); user=0 displayEnabled=true mHdmiPlugged=false mLidOpen=-1 mDockMode=0 (useSensorForOrientationLp(orientation)=true mAccelerometerDefault=1\nV/WindowManager( 299): new rotation is set to 0\nD/BatteryService( 299): update start\nD/BatteryService( 299): level:84 scale:100 status:3 health:2 present:true voltage: 3 temperature: 296 technology: Li-ion AC powered:false USB powered:false icon:17302738 invalid charger:0\nI/TabletStatusBar( 349): DISABLE_BACK: yes\nI/TabletStatusBar( 349): DISABLE_TRAY: bChanged = true\nD/InputManagerService( 299): startInputLocked: cs=ClientState{40b72e58 uid 1000 pid 299}, cs.pid=299, Binding.getCallingPid()=299\nD/InputManagerService( 299): startInputLocked : startInputLocked(client=android.view.inputmethod.InputMethodManager$1@40b71e00, inputContext=android.view.inputmethod.InputMethodManager$ControlledInputConnectionWrapper@41995ef0, attribute=android.view.inputmethod.EditorInfo@41be2d20initial=true, neededResult=false\nD/InputManagerService( 299): java.lang.Throwable\nD/InputManagerService( 299): at com.android.server.InputMethodManagerService.startInputLocked(InputMethodManagerService.java:906)\nD/InputManagerService( 299): at com.android.server.InputMethodManagerService.startInput(InputMethodManagerService.java:1041)\nD/InputManagerService( 299): at android.view.inputmethod.InputMethodManager.startInputInner(InputMethodManager.java:1050)\nD/InputManagerService( 299): …Run Code Online (Sandbox Code Playgroud) 我有一个扩展ListView的自定义.列表以这样的布局定义:AdapterCursorAdapter
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<ProgressBar
android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/ProgressBar.Itasa.Indeterminate.Large"/>
<net.italiansubs.droitasa.widget.HookedListView
android:id="@android:id/list"
style="@style/NewsList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
该HookedListView如下所示:
package net.italiansubs.droitasa.widget;
import android.content.Context;
import android.os.Handler;
import android.util.AttributeSet;
import android.widget.ListView;
import net.italiansubs.droitasa.util.OnLayoutChangedListener;
/**
* An extended ListView that has an hook for getting layout changes.
*
* @author Sebastiano Poggi, Francesco Pontillo
*/
public class HookedListView extends ListView {
private OnLayoutChangedListener mLayoutListener;
private final Handler mHandler;
private boolean mFirstLayout = true;
public HookedListView(Context context) { …Run Code Online (Sandbox Code Playgroud) 我正在使用基于ActionBarSherlock的活动和片段.要从SQLite数据库中读取行,我正在尝试使用a Loader而不是a ContentProvider,我正在尝试让LoaderEx为我工作.
我遇到了一个顽固的问题:在我的片段onCreateLoader回调中,ADT一直给我一个错误:
"Cannot convert from SQLiteCursorLoader to Loader<Cursor>"
Run Code Online (Sandbox Code Playgroud)
我正在使用Android v4支持库.由于DEX错误,我已从android-support-v4.jarActionBarSherlock和LoaderEx中删除,并将其添加到我的基础项目中.然后我让ABS和LoaderEx都依赖于此.
ABS和LoaderEx都作为库项目添加.
我已经检查过我只使用v4导入.LoaderExDemo也可以在模拟器中编译和工作.
这些是我片段的导入:
import com.actionbarsherlock.app.SherlockListFragment;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import android.support.v4.widget.SimpleCursorAdapter;
import android.support.v4.app.LoaderManager;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import com.commonsware.cwac.loaderex.SQLiteCursorLoader;
Run Code Online (Sandbox Code Playgroud)
这是我的片段声明:
public class MeetingListFragment
extends SherlockListFragment
implements LoaderManager.LoaderCallbacks<Cursor> {
private JournalDatabaseHelper db = null;
private SimpleCursorAdapter adapter = null;
private SQLiteCursorLoader loader = null;
Run Code Online (Sandbox Code Playgroud)
这是getLoader回调方法:
public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) …Run Code Online (Sandbox Code Playgroud) android android-fragments actionbarsherlock android-cursorloader commonsware-cwac
我正在尝试使用ActionBar为Android 4.0及更高版本构建应用程序.我很失望,因为与ActionBar相关的代码示例是ActionBarSherlock的基础,我不想使用任何外部库.在没有使用任何外部库甚至没有Android支持库的情况下,commonsware中是否有任何解决方法来处理本机ActionBar?谢谢
如何遍历HashMap的所有内容?我只是最后一次放
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
// 0
HashMap<String, String> map = new HashMap<String, String>();
map.put("name", "name0");
map.put("company", "company0");
list.add(map);
// 1
map = new HashMap<String, String>();
map.put("name", "name1");
map.put("company", "company1");
list.add(map);
for (String key : map.keySet()) {
String value = map.get(key);
Log.w("dd:", "Key = " + key + ", Value = " + value);
}
Run Code Online (Sandbox Code Playgroud)
我只是最后一次放:
Key = company, Value = company1
Key = name, Value = name1
Run Code Online (Sandbox Code Playgroud) 如果文件扩展名不在url的末尾,如何确定文件扩展名?
这两个意图启动另一个名为StartActivity的活动.它们都在不同的环境中运行但不可更换.
Intent intent = new Intent(MainActivity.this, StartActivity.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
和
Intent intent = new Intent(this, StartActivity.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)