标签: android-arrayadapter

我怎样才能在ListView中添加不同的颜色

我想在列表视图的每一行中获得不同的颜色

但目前只显示一种颜色

那我怎么能这样做呢

ArrayAdapter<String> adapter=new ArrayAdapter<String(this,R.layout.latesthappenings,R.id.LH_Titles,titles);
            setListAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

我想在每一行中使用不同的颜色

请告诉我该怎么办

谢谢

android row android-arrayadapter

5
推荐指数
1
解决办法
2662
查看次数

如何在单独的类中使用自定义ArrayAdapter?

我有一个扩展ArrayAdapter的内部类,以便自定义ListView.我想将这个内部类分解为一个单独的文件,以便其他类可以使用它,但在getLayoutInflater()时遇到一些问题.

基本上,我的getView()方法不知道getLayoutInflater()是什么,即使我正在扩展ArrayAdapter.任何人都知道如何正常工作?

谢谢!

public class myDynAdap extends ArrayAdapter<String>
{
    String [] list;


   public myDynAdap (Context context, int textViewResourceId, String [] objects)
   {
       super (context, textViewResourceId, objects);
       mCtx = context;
       list = objects;
   }

    @Override
    public View getView (int position, View convertView, ViewGroup parent)
    {
        View row = convertView;

        if (row == null)
        {

            LayoutInflater inflater = getLayoutInflater ();  // <--- "The method getLayoutInflater() is undefined for the type myDynAdap"
            row = inflater.inflate (R.layout.main_listitem, parent, false);
        }

        TextView tv1 = (TextView) …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter

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

活动在setAdapter(ArrayAdapter)上崩溃;

试图编写我的第一个Android的ArrayAdapter,目前惨遭失败.它在该setAdapter(adapter);行崩溃并抛出NullPointerException.

ContractTestActivity:

public class ContractTestActivity extends Activity {

    private ArrayList<Contract> contracts;
    public final String TAG = "ContractTest";
    //public Contract newContract = new Contract();

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);
        ListView list;
        list = (ListView)findViewById(R.id.list);
        ArrayAdapter<Contract> adapter = new ContractAdapter(this, android.R.layout.simple_list_item_1, contracts);
        list.setAdapter(adapter);
    }
}
Run Code Online (Sandbox Code Playgroud)

ContractAdapter:

public class ContractAdapter extends ArrayAdapter<Contract> {


        private ArrayList<Contract> contracts;

        public ContractAdapter(Context context, int view, ArrayList<Contract> passedContracts) {
                super(context, view, passedContracts);
                contracts = …
Run Code Online (Sandbox Code Playgroud)

java android android-arrayadapter

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

在另一个Activity中更新后刷新ListView

我有两个简单的活动 - 活动1:来自Array Activity2的ListView:EditText,用于编辑Activity1中单击的行

当我在Activity2中编辑值并返回到Activity1时,ListView不会重新加载新值.

我想从Activity2返回或恢复Activity1或更新列表的东西时刷新ListView.

我的代码:

static ArrayAdapter<String> dataAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            // Loading the values to list array
        String[][] fulllist = loadArrays();
        String[] list = new String[fulllist.length];
        for(int i = 0; i<fulllist.length; i++) {
            list[i] =  fulllist[i][1];
            }
            // --------------------------------

            dataAdapter = new ArrayAdapter<String>(this,
                                android.R.layout.simple_list_item_1,
                                list);
            setListAdapter(dataAdapter);
            }
@Override
public void onResume() {
        super.onResume();
        // Loading the values to list array
        String[][] fulllist = loadArrays();
        String[] list = new String[fulllist.length];
        for(int i = 0; …
Run Code Online (Sandbox Code Playgroud)

android listview android-arrayadapter

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

listview.setOnItemClickListener和row.setOnClickListener的区别

我正在创建一个自定义数组适配器,我现在想要实现一个处理单击视图的函数.我有两个选择,但我想知道性能/工作速度是否存在差异?

选项1,在arrayAdapter中:

row.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub


            }
        });
Run Code Online (Sandbox Code Playgroud)

选项2,来自主要活动:

listView.setAdapter(adapter);
        listView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub

            }


        });
Run Code Online (Sandbox Code Playgroud)

还是他们完全一样?

android listview onclick android-arrayadapter

5
推荐指数
1
解决办法
2107
查看次数

List Adapter中的EditText,如何保存值?

所以,我有一个自定义适配器,每行有两个EditText字段.

除了保存ArrayList中的值之外,我已经让大部分内容正常工作了.

这是我到目前为止所做的代码:

private void holderTitleSavedOnScroll(final int position, IZUICartViewHolder holder) {
    if (!(position == (variantArrayList.size() - 1)) && holder.title != null) {
        holder.title.setText(variantArrayList.get(position).getVariantTitle());
        final int finalPosition = position;
        holder.title.setOnFocusChangeListener(new OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                    final EditText newVariant = (EditText) v;
                    variantArrayList.get(finalPosition).setVariantTitle(newVariant.getText().toString());
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

所以这实际上做了我想要的,它在焦点改变时保存了值.除了一个问题,它只在焦点改变时保存值.

这在大多数情况下是很好的,除非用户实际按下使整个视图消失的按钮.焦点从未改变,并且值未设置.

所以我猜你们都在想,是的,我们只需调用addOnTextChangedListener并附加一个TextWatcher,添加如下内容:

        holder.title.setText(variantArrayList.get(position).getVariantTitle());
        final int finalPosition = position;
        final EditText holderTitle = (EditText) holder.title;

        if (holderTitle.getTag() != null) {
            final TextWatcher textWatcher = new TextWatcher() {
                @Override
                public void …
Run Code Online (Sandbox Code Playgroud)

java android listview android-arrayadapter

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

如何获取从其适配器类扩展ListFragment的活动的上下文?

这是我想要调用startActionMode的适配器类.我在setActionMode方法中调用它但得到了以下错误:

  1. 无法从Context转换为ActivityFragment.

  2. 对于ActivityFragment类型,方法startActionMode(ActivityFragment.ActionModeCallback)未定义.

public class ListAdapter extends ArrayAdapter<ListGettersSetters>
{
    ArrayList<ListGettersSetters> arrayListGettersSetters;
    LayoutInflater layoutInflater;
    Context context;
    int Resource, i = 0, j = 0, checkedItemsCount = 0;
    Animation animation1;
    Animation animation2;
    CheckBox flipCheckBox;
    viewHolder holder;
    ActionMode actionMode;
    boolean isActionModeShowing;

    static class viewHolder
    {
        public CheckBox imageView;
        public TextView textViewName;
        public TextView textViewData;
        public TextView textViewDetails;
    }   

    public ListAdapter(Context context, int resource, ArrayList<ListGettersSetters> arrayListGettersSetters) 
    {
        super(context, resource, arrayListGettersSetters);
        this.arrayListGettersSetters = arrayListGettersSetters;
        Resource = resource;
        this.context = context;
        layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        animation1 …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter android-context android-listfragment

5
推荐指数
1
解决办法
996
查看次数

自定义适配器未在ListView上显示任何数据

我的listView需要一个自定义适配器.它需要传递给ASyncTask,它将从RSS提要中获取一些数据,然后希望将该数据(当前标题和日期,两个字符串)设置为该行.

我提出的代码如下,但它没有对适配器做任何事情.

MainActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;


public class MainActivity extends Activity
{
    private ListView listOne;
    private ListView listTwo;
    RssListViewAdapter adapterOne;
    RssListViewAdapter adapterTwo;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.rss_layout);

        //Connect all three columns to their ListViews
        listOne = (ListView) findViewById(R.id.listOne);
        listTwo = (ListView) findViewById(R.id.listTwo);

        //Create both adapaters
        //TODO: Make custom adapater
        adapterOne = new RssListViewAdapter(this);
        adapterTwo = new RssListViewAdapter(this);


        //Class once for each column. Pass feed URL and Adapter.
        new GetRssFeed("http://feeds.arstechnica.com/arstechnica/index", adapterOne, listOne).execute();
        new …
Run Code Online (Sandbox Code Playgroud)

java android listview android-arrayadapter custom-adapter

5
推荐指数
1
解决办法
759
查看次数

从Activity AlertDialog添加到Fragment ArrayAdapter

我正在学习Android Studio中的原型,我遇到了一个障碍,我似乎无法找到任何答案.

我有一个Activity,它将自定义ArrayAdapter显示为ListView.我可以通过单击它们并输入生成的AlertDialog来编辑ListView中的项目.还有一个我可以按下的添加按钮,它会显示一个类似的AlertDialog,但是当我点击保存时,没有任何内容被添加到ListView中.如何将AlertDialog文本输入保存为新的ArrayAdapter项?

我发现的大多数例子都直接在Activity中实例化了ArrayAdapter,而不是像我做的那样通过Fragment实例化.

MainActivity.java

public class MainActivity extends AppCompatActivity {

private static final String TAG = "MainActivity";

@Override
protected void onCreate(Bundle savedInstanceState) { //initialize the activity
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); //establish where the layout will come from
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); //creates a toolbar
    setSupportActionBar(toolbar);

    if (findViewById(R.id.fragment_container) != null) {
        if (savedInstanceState != null) {
            return;
        }
        //creates the first fragment dynamically, so it can be replaced
        Fragment firstFragment = new MainActivityFragment();
        firstFragment.setArguments(getIntent().getExtras());
        getSupportFragmentManager().beginTransaction()
                .add(R.id.fragment_container, firstFragment).commit();
    }

    //This creates the …
Run Code Online (Sandbox Code Playgroud)

java android android-arrayadapter android-fragments

5
推荐指数
1
解决办法
159
查看次数

适配器获取新项目后,GridView不会更新其子视图

我一直在四处寻找,试图找出我的代码导致问题的原因.我有一个GridView,它有一个ArrayAdapter,可以使用AsyncTask将照片拉下来.我可以看到正在更新的项目,但是当我尝试更新适配器时,GridView似乎没有使用新视图更新.

这是完成工作的相关代码......

private void fetchJsonResponse(String url) {
    // Pass second argument as "null" for GET requests
    JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET,
            url + "&api_key=" + API_KEY,
            null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        JSONArray photos = response.getJSONArray("photos");

                        for(int i = 0; i < photos.length(); i++){
                            JSONObject object = photos.getJSONObject(i);
                            String url = object.getString("img_src");
                            //String id = object.getString("id");
                            list.add(new ImageItem(null, "Picture", url));
                            Log.i("Debug 2", url);
                        }
                        Log.i("Debug 2", list.get(0).toString());

                        if(gridViewAdapter != null){
                            gridViewAdapter.clear();
                            gridViewAdapter.addAll(list);
                            gridViewAdapter.notifyDataSetChanged();
                            gridView.invalidateViews(); …
Run Code Online (Sandbox Code Playgroud)

android gridview android-arrayadapter

5
推荐指数
1
解决办法
313
查看次数