标签: android-arrayadapter

如何避免重新绘制ArrayAdapter中的所有视图

我有ArrayAdapter动力了ListView.我想改变背后的数据ArrayAdapter并更新它们ListView.听起来就像notifyDataSetChanged();我正在寻找的,但它会更新整个ListView,我宁愿逐行更新.

有没有办法做到这一点ArrayAdapter,或者如果我想要这个功能,我是否需要以其他方式管理我的数据?

android listview android-arrayadapter

3
推荐指数
1
解决办法
591
查看次数

ListView的内容在滚动时加扰

所以我遇到组成我的ListView的不同部分的问题.我把它们放到一个ArrayList中并使用一个自定义的ArrayAdapter来连接我之前做过的ListView,所以我不相信那里有问题.最初,列表似乎按正确的顺序排列,但随后我将向下滚动列表,然后内容将以不正确的顺序加载.然后我向上滚动,一切都混乱.有没有人遇到过这个?

谢谢 - 杰克

android listview android-arrayadapter

3
推荐指数
1
解决办法
1558
查看次数

Spinner:ArrayAdapter.createViewFromResource中的NullPointerException

我用这样的代码创建了一些Spinners:

    if (dyn_list_id[i]==null){
         String[] form_ids = db.getEntireColumn(list_table_name[i], "form_label_id");
         String[] spinnerArray = new String[form_ids.length];
         for (int k=0;k<form_ids.length;k++){
                 spinnerArray[k] = db.getFromLanguageTable(language_short_name, list_table_name[i], form_ids[k]);
                 System.out.println("Spinner Array "+spinnerArray[k]);
         }
         product_spinner[i] = new Spinner(viewToLoad.getContext());  //First Spinner
         product_spinner[i].setLayoutParams(lp_spinner);
         product_spinner[i].setBackgroundResource(R.drawable.spinner_selector);
         ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(viewToLoad.getContext(),  com.Orange.R.layout.my_spinner_textview, spinnerArray);
         spinnerArrayAdapter.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);
         product_spinner[i].setAdapter(spinnerArrayAdapter);
         this.SpinnerFields.add(product_spinner[i]);

        linear_layout[i].addView(product_spinner[i]);
        tablerow_product[i].addView(linear_layout[i]);
        Themes_TableLayout.addView(tablerow_product[i],new TableLayout.LayoutParams(TableRow.LayoutParams.FILL_PARENT,
                                TableRow.LayoutParams.WRAP_CONTENT));
    }
    else {
    String[] spinnerA = new String[item_visible];
    int cont=0;
    for (int p=0;p<status_itemList.length;p++){
         if (status_itemList[p].trim().equals("1")){
               spinnerA[cont]=db.getFromLanguageTable(language_short_name, "pr_dyn_list_option", form_label_id_itemList[p]);
               System.out.println("Spinner dinamic array "+spinnerA[cont]);
               cont++;
               }  
    }

     product_spinner[i] = new Spinner(viewToLoad.getContext()); //second Spinner
     product_spinner[i].setLayoutParams(lp_spinner); …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception spinner android-arrayadapter

3
推荐指数
1
解决办法
7273
查看次数

Android:如何使用ArrayAdapter获取微调器项的id

我的微调器加载了一些消息,每条消息都有自己的id,

public class Message {
    private String id;
    private String message;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }

     @Override
     public String toString() {          
         return  message;
     }
}
Run Code Online (Sandbox Code Playgroud)

我将它传递message给Arrayadapter,

   protected List<Message> messages = null;
    ArrayAdapter <Message> arrayadapter = new ArrayAdapter<Message>( activity,android.R.layout.simple_spinner_item,messages);               
                        arrayadapter.setDropDownViewResource(R.layout.textview);
 spinner1.setAdapter(arrayadapter); 
Run Code Online (Sandbox Code Playgroud)

现在,我如何才能获得所选特定消息的ID?我可以用arrayadapter做到这一点.感谢任何帮助

android android-arrayadapter

3
推荐指数
1
解决办法
1万
查看次数

如何从Android中的Fragment调用ArrayAdapter构造函数

我正在尝试将两列ListView添加到我的Android应用程序中.当我创建项目时,我选择了Fragment选项,它通过向左和向右滑动创建了漂亮的导航.所以我的MainActivity延伸FragmentActivity.

我的问题是当我试图将AddayAdapter添加到ListView时,ArrayAdapter的construstor寻找上下文对象,我不知道要传递它.

这是我得到错误的代码

StableArrayAdapter adapter = new StableArrayAdapter(this, R.layout.row , list);
listview.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

当我传递"this"时,它会传递FragmentActivity,因为该活动扩展了FragmentActivity.但构造函数需要一个"Context"对象.

它给出了此错误消息

"The constructor MainActivity.StableArrayAdapter(MainActivity.DummySectionFragment, int, ArrayList<String>) is undefined"
Run Code Online (Sandbox Code Playgroud)

我怎样才能传递Context对象?

java android listview android-arrayadapter

3
推荐指数
1
解决办法
1万
查看次数

如何在Android中立即刷新自定义适配器列表?

我想获得一个列表标题,当我在主页上键入Edittext然后在单击"确定"按钮后添加到列表中时,我想要的是什么.现在我不知道从主页Activity上的customAdapter类调用我的刷新方法的位置.

请查看我的HomePage活动:

public class Main_Activity extends Activity implements OnClickListener {
Button ok;
EditText addTasklist;
ListView list_tasklistname;
TodoTask_Database db;
CustomAdapter cAdapter;
List<Tasks> list = new ArrayList<Tasks>();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_layout);
    ok = (Button)findViewById(R.id.add);
    ok.setOnClickListener(this);
    list_tasklistname = (ListView)findViewById(R.id.listview);
    db = new TodoTask_Database(getApplicationContext());
    list = db.getAllTaskList();
    CustomAdapter adapter = new CustomAdapter(Main_Activity.this, R.layout.tasklist_row, list);
    list_tasklistname.setAdapter(adapter);
    /*list_tasklistname.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View v, int position,
                long id) {
        }
    });*/
    db.close();
}
}
@Override
public void onClick(View v) …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter android-listview custom-adapter

3
推荐指数
1
解决办法
2万
查看次数

使用PullToRefresh库不调用自定义适配器getView()

使用Chris Banes的PullToRefresh库,我的自定义适配器的getView()方法没有被调用.这段代码工作正常,使用他的库,并调用getView().我一直在调查这几天,无法弄清楚出了什么问题.任何反馈将不胜感激!

MyActivity.java

MyAdapter adapter = new MyAdapter(this, data);
// the following toast displays the correct count
Toast.makeText("MyActivity", adapter.getCount(), Toast.LENGTH_SHORT).show(); 
myListView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

MyAdapter.java

public class MyAdapter extends ArrayAdapter<Object> {

    private ArrayList<Object> data;
    private LayoutInflater vi;
    private Context context;

    public MyAdapter(Context context, ArrayList<Object> data) {
        super(context, 0);
        this.context = context;
        this.data = data;
        this.vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    static class ViewHolder {
        ...
    }

    @Override
    public int getCount() {
        return data.size();
    }

    @Override
    public long getItemId(int position) {
        return …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter android-listview custom-adapter pull-to-refresh

3
推荐指数
1
解决办法
3292
查看次数

ArrayAdapter要求资源ID为DialogFragment中的TextView

我在DialogFragment中使用ArrayAdapter,可以在Android 4.0及更高版本上运行,但在2.3版本中不行.

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    // Get the layout inflater
    LayoutInflater inflater = getActivity().getLayoutInflater();

    View view = inflater.inflate(R.layout.dialog, null);

    Spinner spReglement;
    spReglement = (Spinner)view.findViewById(R.id.listReglements);

    ArrayAdapter<String> adapterList = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1);
    adapterList.setDropDownViewResource(R.layout.customspinner);
    spReglement.setAdapter(adapterList);

    HashMap<Integer, String> mapReglement = new HashMap<Integer, String>();
    mapReglement.put(-1, "");
    adapterList.add("");
    for(int i=0; i<alReglement.size();i++){
        String libelle = String.valueOf(alReglement.get(i).get("Libelle"));         
        mapReglement.put(i, libelle);
        adapterList.add(libelle);           
    }
    builder.setView(view)
           .setPositiveButton("Valider", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   mListener.onDialogPositiveClick(DialogFSE.this);
               }
           })
           .setNegativeButton("Annuler", new DialogInterface.OnClickListener() { …
Run Code Online (Sandbox Code Playgroud)

java android android-arrayadapter android-dialogfragment

3
推荐指数
1
解决办法
3930
查看次数

在DialogFragment中使用适配器时,软键盘不显示

我有一个自定义的DialogFragment,里面有一个ArrayAdapter,里面有一些editTexts.显示对话框时,即使我按下编辑文本,也不会出现软键盘.编辑文本确实需要重点,但键盘永远不会出现.

如果我不使用适配器,只使用带有编辑文本的视图,它可以很好地工作,但只要我添加适配器,我就会遇到问题.

我的代码如下.任何帮助将非常感激.

提前致谢.

public class ParameterDialog extends DialogFragment {
Context context;

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    ArrayList<Parameter> params = this.getArguments().getParcelableArrayList(MainActivity.KEY_PARAMS_TO_DIALOG);
    String name = this.getArguments().getString(MainActivity.KEY_NAME_TO_DIALOG);

    context = getActivity();
    // Use the Builder class for convenient dialog construction
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    ParameterDialogAdapter pda = new ParameterDialogAdapter(context,R.layout.parameter_config_string , params);

    // Inflate and set the layout for the dialog
    // Pass null as the parent view because its going in the dialog layout
    builder
            .setTitle(name)
            .setAdapter(pda,null)
            .setPositiveButton("Send", new DialogInterface.OnClickListener() { …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter android-dialogfragment

3
推荐指数
1
解决办法
1118
查看次数

为arrayadapter设置自定义字体

这是我的代码:

String[] filled_arr;
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.list_item, R.id.tv_wi, filled_arr);
listview.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

这是字体:

final Typeface typeface = Typeface.createFromAsset(getAssets(), "Constantia.ttf");
Run Code Online (Sandbox Code Playgroud)

如何为适配器设置它?

android android-arrayadapter typeface

3
推荐指数
1
解决办法
1473
查看次数