标签: android-arrayadapter

我如何根据其在数组(Android)中的位置使用一个字符串数组条目?

我正在尝试制作一个简单的oracle应用程序,当你向应用程序询问一个问题时,它会根据随机数发出答案.

我做了一些研究,在我看来,最好的做法是为我的答案创建一个包含字符串数组的资源,然后我可以在数组中输入我的各种答案.

在我的主要活动的Java代码中,我可以在单击按钮时生成随机数.然后该随机数可以对应于索引的数量.

当我尝试将随机数和设施分块以在代码中一起访问字符串数组时,我的问题就来了.

这是我的answerStrings.xml文件的副本

<?xml version="1.0" encoding="utf-8"?>

<resources>
    <string-array
    name="answers">
    <item>Yes</item>
    <item>No</item>
    <item>Maybe</item>
    <item>Quite possibly</item>
</string-array>
</resources>
Run Code Online (Sandbox Code Playgroud)

这是我的java代码:

import java.util.Random;

import android.app.Activity;
import android.content.res.Resources;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

TextView    outputText;
MediaPlayer mpGobble;
Vibrator    vibr;
String[]    answers;
private Random myRandom = new Random();
int         randomNumber;

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

    //find the …
Run Code Online (Sandbox Code Playgroud)

arrays string android android-arrayadapter

0
推荐指数
1
解决办法
2611
查看次数

将多个 Lists&lt;String&gt; 传递到 ArrayAdapter

我从这个活动开始:

adapter = new ItemAdapter(Items.this, items, totals);
        setListAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

现在这里是 ItemAdapter:

public class ItemAdapter extends ArrayAdapter<String> {

private final List<String> items;
private final List<String> totals;
private final Context context;

public ItemAdapter(Context context, List<String> items,
        List<String> totals) {
    super(context, R.layout.item_row_layout, items);
    this.context = context;
    this.items = items;
    this.totals = totals;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View rowView = inflater
            .inflate(R.layout.item_row_layout, parent, false);
    TextView t1 = (TextView) rowView.findViewById(R.id.itemName);
    TextView t2 = …
Run Code Online (Sandbox Code Playgroud)

android constructor list android-arrayadapter

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

android 刷新前无法清除listview中的数据

我有一个显示交易列表的应用程序。当我单击按钮获取第二天的交易时,列表视图仍然附加前一天的交易。在 getView 重新填充数组或适配器之前,如何清除它?

我已经尝试过clear()和adapter.notifyDataSetChanged()但它仍然不起作用。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.getrotalayout);

         setCurrentDateOnView();


        Log.e(TAG, "title = " + getTitle());
        Log.e(TAG, "super.title = " + super.getTitle());
        nfcscannerapplication = (NfcScannerApplication) getApplication();
        date = nfcscannerapplication.getDate();
        listView = (ListView) findViewById(R.id.rotalist);
        intent = this.getIntent();
        Bundle bundle = intent.getBundleExtra("rotaArrayBundle");
        if(array != null){
            array.clear();
        }
        array = (ArrayList<?>) bundle.get("rotaArray");

        arrayAdapter = new MySimpleArrayAdapter(this, array);
        arrayAdapter.notifyDataSetChanged();

        listView.setAdapter(arrayAdapter);
        listView.setOnItemClickListener(this);
Run Code Online (Sandbox Code Playgroud)

。[更新]

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.getrotalayout);

         setCurrentDateOnView();


        Log.e(TAG, "title = " + getTitle());
        Log.e(TAG, "super.title = " …
Run Code Online (Sandbox Code Playgroud)

android listview android-arrayadapter

0
推荐指数
1
解决办法
2148
查看次数

如何在Android中的ListView项之前放置一个数字

在我的列表中,数据显示如下,

test 1
test 2
test 3
Run Code Online (Sandbox Code Playgroud)

但我想向他们展示,

1) test 1
2) test 2
3) test 3
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点.请帮助.这是我到目前为止所做的代码.

public class AppointmentList extends Activity{

    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.select_to_delete);

        String[] myStringArray = new String[] { "test 1", "test 2", "test 3"};

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
                android.R.layout.simple_list_item_1, myStringArray);

        ListView listView = (ListView) findViewById(R.id.listView1);
        listView.setAdapter(adapter);
    }

}
Run Code Online (Sandbox Code Playgroud)

java android android-arrayadapter android-listview

0
推荐指数
1
解决办法
4315
查看次数

AutoCompleteTextView 中不出现下拉菜单

我正在开发一个项目,在该项目中我必须访问 SQLite3 数据库中的数据并在键入时向用户显示建议。我已经用 AutoCompleteTextView 尝试过这个,但它不起作用。我正在处理此代码:

ArrayList<String> sugestion = new ArrayList<String>();


public ViewGroup onCreateView (LayoutInflater inflater , ViewGroup container , Bundle savedInstanceState )
{
myAutoComplete = (AutoCompleteTextView) group.findViewById(R.id.searchit);

searchDB = new searchAdapter(getActivity());

searchDB.getWritableDatabase();

myAutoComplete.addTextChangedListener(new TextWatcher(){
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            suggestion = searchDB.getSuggestion(s.toString());

            Collections.sort(suggestion);

            String[] item = new String[suggestion.size()];

            item = suggestion.toArray(item);

            for(String word : item)
                System.out.println(word);

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {                

        }

        @Override
        public void …
Run Code Online (Sandbox Code Playgroud)

java android autocompletetextview android-arrayadapter textwatcher

0
推荐指数
1
解决办法
5485
查看次数

尝试扩充布局时适配器中的异常

我正在尝试在我的适配器的getView方法中扩展布局:

这是错误:

01-18 20:58:04.873: E/AndroidRuntime(21583): java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView
01-18 20:58:04.873: E/AndroidRuntime(21583):    at android.widget.AdapterView.addView(AdapterView.java:478)
01-18 20:58:04.873: E/AndroidRuntime(21583):    at android.view.LayoutInflater.inflate(LayoutInflater.java:500)
01-18 20:58:04.873: E/AndroidRuntime(21583):    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
01-18 20:58:04.873: E/AndroidRuntime(21583):    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
01-18 20:58:04.873: E/AndroidRuntime(21583):    at com.myname.myapp.gui.MyAdapter.getView(MyAdapter.java:46)
Run Code Online (Sandbox Code Playgroud)

错误(根据日食发生在 converView =mInflater...

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    if (convertView == null) {
        convertView = mInflater.inflate(
                android.R.layout.simple_list_item_1, parent);
    }
    ((TextView) convertView.findViewById(R.id.text1)).setText(titles
            .get(position));
    return convertView;
}
Run Code Online (Sandbox Code Playgroud)

这是我的适配器的构造函数:

public MyAdapter(ArrayList<String> list, Context context) { …
Run Code Online (Sandbox Code Playgroud)

java android android-arrayadapter android-listview android-adapter

0
推荐指数
1
解决办法
1842
查看次数

如何在按钮单击时在Adapter类中获取Tapped List Item位置

我试图在按钮单击时在Adapter类中获取列表项位置,但没有取得任何成功

首先,我必须获取tapped list项,然后想要删除该行

得到这样的东西: D/strPosition::-(1922): com.and.field.Transport@b3ddf5c0

使用以下代码:

viewHolder.btnDelete.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(final View v) {         

                strPosition = arrayList.get(position).toString();
                Log.d("strPosition::-", strPosition);

                // and then want to delete that row using tapped position

                strName = arrayList.get(position).getName().toString();                         

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

android android-arrayadapter android-listview custom-adapter

0
推荐指数
1
解决办法
3370
查看次数

如何在Android ArrayAdapter中使用对象数组?

我需要使用ArrayAdapter在我的Android应用程序中填充ListView.它说,为了使用ArrayAdapter

例如,如果要在ListView中显示要显示的字符串数组,请使用构造函数初始化新的ArrayAdapter,以指定每个字符串和字符串数组的布局:

ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,myStringArray);

这个构造函数的参数是:

  • 你的应用上下文
  • 包含数组中每个字符串的TextView的布局
  • 字符串数组

然后只需在ListView上调用setAdapter():

ListView listView =(ListView)findViewById(R.id.listview); listView.setAdapter(适配器);

但是,我没有字符串数组,我有一个包含字符串值的对象数组.

public class Headers {
    private String from;
    private String to;
    private String subject;

    public Headers (String from, String to, String subject){
        this.from = from;
        this.to = to;
        this.subject = subject;
    }

    public String getFrom() { return from; }
    public void setFrom(String from) { this.from = from; }

    public String getTo() { return to; }
    public void setTo(String to) { this.to = to; …
Run Code Online (Sandbox Code Playgroud)

android listview android-arrayadapter

0
推荐指数
1
解决办法
5031
查看次数

在 Kotlin ArrayAdapter 中需要 (Context context,int resource) 作为参数,但我想要作为 ArrayList 中的字符串 h 怎么能做到这一点?

class Word(var mDefultTranslation: String, var mArabicTranslation: String ) {
      fun Word (defultTranslation : String , arabicTranslation : String  ){
          mDefultTranslation = defultTranslation
          mArabicTranslation = arabicTranslation
      } 
}

val words = arrayListOf<Word>()
words.add( Word("one","two" ))  
val wordAdapter = WordAdapter (this, word??)
Run Code Online (Sandbox Code Playgroud)

android arraylist android-arrayadapter kotlin

0
推荐指数
1
解决办法
4863
查看次数

将值从 Activity 传递到适配器

我有活动 A 和 B。活动 B 使用回收视图 Adpater 来显示信息列表。从活动 A 中,我将意图发送到用于工具栏标题的活动 B。但我在 Adapter 类中也需要相同的意图。

那么如何将 Intent 值从 Activity A 传递到 B,并在适配器类中也使用相同的 Intent。

我的活动 A 有代码

Intent new = new Intent(itemView.getContext(), B.class);
                phy.putExtra("key","This is title");   itemView.getContext().startActivity(new);
Run Code Online (Sandbox Code Playgroud)

在活动 B 中,我有

   getSupportActionBar().setTitle(getIntent().getStringExtra("key"));
Run Code Online (Sandbox Code Playgroud)

我也想要适配器类中的键值。

活动B的代码是

Intent new = new Intent(itemView.getContext(), B.class);
                phy.putExtra("key","This is title");   itemView.getContext().startActivity(new);
Run Code Online (Sandbox Code Playgroud)

我的适配器类有

   getSupportActionBar().setTitle(getIntent().getStringExtra("key"));
Run Code Online (Sandbox Code Playgroud)

提前致谢。

java android adapter android-arrayadapter android-intent

0
推荐指数
1
解决办法
1844
查看次数

我的Android微调器没有ArrayAdapter工作......为什么?

我会来天堂还是下地狱?由于我必须填充5个微调器,我尝试了非常紧凑的代码.我不明白为什么我应该使用ArrayAdapter,所以我简单地将它删除了,尽管所有教程都使用它.因为它有效,我被贬低了.代码只显示一个微调器:

 Spinner s2_height = (Spinner)findViewById(R.id.s2_height);
    s2_height.setOnItemSelectedListener(new OnItemSelectedListener() {  //Register a callback to be invoked when an item in this AdapterView has been selected.
        public void onItemSelected(AdapterView<?> arg0, View arg1,  //Callback method to be invoked when an item in this view has been selected
                int arg2, long arg3) {
            myCalc();}
        public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub

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

这是我的.java中的位置,在那里我删除了ArrayAdapter部分,通常在教程中重新编写为:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.Height_array_id, android.R.layout.simple_spinner_item);
   adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
   s2_height.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,它有效,我放置了一个方法myCalc,它正确显示所有5个微调器上的ItemPosition.现在我担心我会在另一个地方出现任何缺点,可能会改变颜色或文字高度.有人有同样的问题吗?

android spinner android-arrayadapter

-1
推荐指数
1
解决办法
1243
查看次数

两个活动之间共享的arraylist不起作用

我有一个问题,当我在checkbox中选择我的项目(因此它被检查)数组已经填满,但当我点击"Done"时,称为新活动GenreViewActivity,它调用了获取前一个活动的arraylist的方法,但是它的ListView,布局是空的.我错了什么?

AccountActivity GenreViewActivity

AccountActivity.java:

package com.example.msnma.movienotifier;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class AccountActivity extends AppCompatActivity 
{
    private static ArrayList <String> itemsChkStr = new ArrayList<String();

public class Item 
{
        boolean checked;
        Drawable ItemDrawable;
        String ItemString;
        Item(/*Drawable drawable,*/ String t, boolean b)
        {
            //ItemDrawable = drawable; …
Run Code Online (Sandbox Code Playgroud)

java android listview android-arrayadapter android-activity

-1
推荐指数
1
解决办法
58
查看次数

如何在此代码中删除NullPointerException

您有自定义列表视图与以下代码段.
问题是当我运行代码时应用程序崩溃这是我的代码

class MyAdupter extends ArrayAdapter<String>{
     Context context; 
     String[] title ; 
     String[] description; 
     int[] images; 
     public MyAdupter(Context context, String[] title, String[] description, int[] images) {
        super(context, R.layout.my_simple_row,title);
        this.context = context; 
        this.title = title; 
        this.description = description; 
    } 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) {
        Layoutlnflater inflater = (Layoutlnflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
        View row = inflater.inflate(R.layout.my_simple_row, parent, false); 
        ImageView imageView = (ImageView) row.findViewById (R.id.imageViewl); 
        TextView textTitle = (TextView) row.findViewById (R.id.textViewl); 
        TextView textDescription = (TextView) row.findViewById(R.id.textView2);   

        imageView.setImageResource(images[position]); 
        textTitle.setText(title[position]); 
        textDescription.setText(description[position]); 
        return row; …
Run Code Online (Sandbox Code Playgroud)

android arraylist nullpointerexception android-arrayadapter

-4
推荐指数
1
解决办法
113
查看次数