我正在尝试制作一个简单的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) 我从这个活动开始:
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) 我有一个显示交易列表的应用程序。当我单击按钮获取第二天的交易时,列表视图仍然附加前一天的交易。在 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) 在我的列表中,数据显示如下,
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) 我正在开发一个项目,在该项目中我必须访问 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
我正在尝试在我的适配器的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
我试图在按钮单击时在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
我需要使用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) 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) 我有活动 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)
提前致谢。
我会来天堂还是下地狱?由于我必须填充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.现在我担心我会在另一个地方出现任何缺点,可能会改变颜色或文字高度.有人有同样的问题吗?
我有一个问题,当我在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) 您有自定义列表视图与以下代码段.
问题是当我运行代码时应用程序崩溃这是我的代码
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)