我正在开发一个应该从Web服务获取JSON响应的应用程序并编写listview中的每个元素,我已经读过我应该使用AsyncTask来获取HTTP响应并且我做了它并且我可以从webservice检索数据并在TextViews中显示它们.但是当我尝试在列表视图中显示元素时,它不会显示任何内容并在logcat中给出以下消息:06-05 19:44:27.418: I/Choreographer(20731): Skipped 60 frames! The application may be doing too much work on its main thread.
这是我的主要代码:
public class MainActivity extends Activity {
private static JsonObject response = new JsonObject();
private ArrayList<SearchResults> results = new ArrayList<SearchResults>();
private SearchResults sr1 = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new LoginAction().execute("");
ArrayList<SearchResults> searchResults = results;
final ListView lv1 = (ListView) findViewById(R.id.ListView01);
lv1.setAdapter(new MyCustomBaseAdapter(this, searchResults));
}
@Override
public boolean onCreateOptionsMenu(Menu …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Butter Knife来简化自定义BaseAdapter类的创建.我在这里的例子如下:http://jakewharton.github.io/butterknife/在"另一个用途是简化列表适配器内的视图持有者模式".部分.不幸的是,每次为列表中的每个项目创建ViewHolder时,我都会收到"无法注入视图"错误.
这是我的代码:
public class ButterknifeCustomBaseAdapter extends BaseAdapter{
@Override
public int getCount() {
return arrayListNames.size();
}
@Override
public Name getItem(int iPosition) {
return arrayListNames.get(iPosition);
}
@Override
public long getItemId(int iID) {
return 0;
}
LayoutInflater inflater;
ArrayList<Name> arrayListNames = new ArrayList<Name>();
static Context context;
Activity activity;
public ButterknifeCustomBaseAdapter(Context context, ArrayList<Name> names, Activity activity) {
arrayListNames = names;
this.context = context;
inflater = LayoutInflater.from(this.context);
}
static class ViewHolder implements View.OnClickListener {
@InjectView(R.id.textViewFullName) TextView textViewFullName;
@InjectView(R.id.imageButtonDeleteName) TextView imageButtonDeleteName; …Run Code Online (Sandbox Code Playgroud) 现在填充我的GridViews我在每个Android活动(大多数是其中)上使用扩展的BaseAdapter类.
为了便于阅读和维护,我试图将所有BaseAdapter代码放在一个单独的类文件中.
要填充GridView,我正在使用LayoutInflater,这里的东西变得棘手......
由于getLayoutInflater()来自android.Activity,它只是不会做的伎俩.我尝试将我的Adapter.java(填充GridViews的类)扩展为Activity类,然后在内部创建BaseAdapter类(我现在这样做的方式),但我无法使其正常工作.
以下是Adapter.java的外观:
//Adapter.java
package com.cimp.matitec;
import greendroid.app.GDActivity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class Adapter extends GDActivity{
public class ImageAdapter extends BaseAdapter
{
Context MyContext;
int count;
String[] nombre;
public ImageAdapter(Context _MyContext, int n, String[] nombre)
{
MyContext = _MyContext;
count = n;
this.nombre = nombre;
}
public int getCount()
{
/* Set the number of element we want on the grid */
return count;
} …Run Code Online (Sandbox Code Playgroud) 我有Listview与editext和textview.
当我触摸edittext时,edittext失去焦点!
我通过设置解决了这个问题android:windowSoftInputMode="adjustPan"(AndroidManifest.xml).现在我触摸edittext而不是editext获得焦点但是应用程序标签和listview的一些原始消失(顶部).
当用户触摸edittext而不丢失应用程序标签和一些原始列表视图时,我想获得焦点.
我已实施的代码:
当用户触摸edittext时,下面的编码会得到关注,但当软键盘弹出时,应用程序标签和listview的一些原始消失.我想在用户触摸edittext时获得焦点,而不会丢失应用程序标签和一些原始列表视图.
1)的AndroidManifest.xml
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MyListViewDemoActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustPan"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
2)raw_layout.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText android:id="@+id/mEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
3)main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView android:id="@+id/mListView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
4)MyListViewDemoActivity
public class MyListViewDemoActivity extends Activity {
private ListView mListView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mListView=(ListView)findViewById(R.id.mListView); …Run Code Online (Sandbox Code Playgroud) 我想知道什么时候BaseAdapter.notifyDataSetChanged()完成,然后做声音.我的代码:
BaseAdapter.notifyDataSetChanged();
mScroller.startScroll(oldX, 0, dx, 0);
Run Code Online (Sandbox Code Playgroud)
mScrollernotifyDataSetChanged()完成之前滚动 .我想在完成后mScroller滚动到.oldXnotifyDataSetChanged()
请帮帮我,谢谢.
我有一个listview(带有自定义列表适配器),我需要在每一行显示一个倒计时.
例如,如果我的列表包含4个项目,我将有4行.此时,我需要处理4个不同的倒计时(每行一个),因为时间不同.

到目前为止,我正在通过以下方式处理它:在自定义列表适配器中,在getView()方法内部,我创建一个新的CountDownTimer并在TextView中显示剩余时间.
但问题是它会大大减慢活动速度,在最坏的情况下我甚至无法正确滚动(因为每次显示一行时,它都会创建一个新的CountDownTimer).
我搜索了很多更好的解决方案,但没有人满意.
是否有更清洁,更流畅的解决方案来处理listView中的多个倒计时器?
谢谢
我正在实现一个自定义ArrayAdapter<T>,我想将其设置hasStableIds为true.但我的T项的ID是字符串,getItemId方法返回long.
所以,我目前正在做的是:
@Override
public boolean hasStableIds() {
return true;
}
@Override
public long getItemId(int position) {
return this.getItem(position).getId().hashCode();
}
Run Code Online (Sandbox Code Playgroud)
当getId()返回一个字符串.
这是使用String ID的正确解决方案吗?
特别是,对于这种情况,String Ids是GUID,有更好的选择吗?
我试图过滤listview,但getfilter方法不起作用,
这是代码:
@Override
public void afterTextChanged(Editable s) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
mHistoryAdapter.getFilter().filter(s);
}
Run Code Online (Sandbox Code Playgroud)
我已经在baseadapter中添加了该方法
public Filter getFilter() {
return null;
}
Run Code Online (Sandbox Code Playgroud)
但它没有用......可以有人帮帮我.. @谢谢
我有一个连接到ListView的适配器,例如
mJournalAdapter = new JournalAdapter();
journalEntryList.setAdapter(mJournalAdapter);
Run Code Online (Sandbox Code Playgroud)
我想知道我的内部JournalAdapter是否有一些视图(ListView项目)是否可见,是否可能?
我有一个名为BinderData扩展的类BaseAdapter.我想获得基类上下文.我尝试使用,getContext()但在以下情况下不起作用BaseAdapter.
我怎样才能获得这堂课的背景?
android ×10
baseadapter ×10
listview ×4
adapter ×1
annotations ×1
butterknife ×1
convertview ×1
countdown ×1
java ×1
search ×1