@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Selection Options");
menu.add(0, v.getId(), 0, "Remove");
}
Run Code Online (Sandbox Code Playgroud)
我希望我的菜单说"删除AAPL"
我会从我的数组适配器获取字符串AAPL,但我不知道如何从此方法访问我的数组适配器索引.
我在ListView中只添加了复选框.
list_checkbox.xml:
<?xml version="1.0" encoding="utf-8"?>
<CheckBox
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="42px">
</CheckBox>
在java中; 在列表中捕获事件我使用过::
items1={" "," "," "," "}; //blank i.e. no text near checkbox
lv1.setAdapter(new ArrayAdapter<String>(this, R.layout.list_checkbox, items1));
lv1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
// When clicked,put code here.....
}
});
Run Code Online (Sandbox Code Playgroud)
但现在在哪里以及如何捕获复选框事件?
详细plz.
我是新手.
感谢名单..
checkbox android listview android-arrayadapter android-listview
我实际上要做的是使用彩色TextView填充我的ListView.我想我必须创建一个自定义ArrayAdapter.适配器将获取我的类ColorElement的一组对象.这是适配器的代码
public class ColoredAdapter extends ArrayAdapter<ColorElement> {
private final Context context;
private final ArrayList<ColorElement> values;
public ColoredAdapter(Context context, ArrayList<ColorElement> values) {
super(context, R.layout.simple_list_item_1);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = (TextView) view.findViewById(R.id.text1);
textView.setText( ((ColorElement)values.get(position)).getName());
textView.setTextColor(((ColorElement)values.get(position)).getClr());
return view;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我正在创建对象数组和设置适配器的代码
ArrayList<ColorElement> values = new ArrayList<ColorElement>();
for(int i = 0; i < answerCount; ++i) {
int num = randNumber.nextInt(colorList.size() - 1);
values.add( …Run Code Online (Sandbox Code Playgroud) 我有一个TextView在我ArrayAdapter可能包含一些超链接.对于我使用的那些链接Linkify:
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;
if (rowView == null) {
rowView = inflater.inflate(R.layout.list_item_2, null);
holder = new ViewHolder();
holder.content = (TextView) rowView.findViewById(R.id.postContent);
holder.date = (TextView) rowView.findViewById(R.id.postDate);
rowView.setTag(holder);
} else {
holder = (ViewHolder) rowView.getTag();
}
holder.content.setText(contents.get(position));
holder.date.setText(dates.get(position));
Linkify.addLinks(holder.content, Linkify.ALL);
return rowView;
}
Run Code Online (Sandbox Code Playgroud)
但是因为Linkify在ArrayAdapter中添加了,我得到一个例外说:
08-05 16:42:16.715: E/AndroidRuntime(20598): FATAL EXCEPTION: main
08-05 16:42:16.715: E/AndroidRuntime(20598): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the …Run Code Online (Sandbox Code Playgroud) 我正在尝试显示一个蓝牙设备列表ArrayAdapter,并希望覆盖适配器的默认功能以显示对象toString().我知道有扩展getView(...)方法的解决方案,但我真的觉得这是过于复杂的事情.我想要的是覆盖要显示的字符串的构建方式.对于蓝牙设备,这将使用getName()而不是toString().
所以我创建了一个自定义数组适配器,如下所示,理想情况下会有一个类似于的方法 getDisplayString(T value)
public class MyArrayAdapter extends ArrayAdapter<BluetoothDevice> {
...
@Override //I wish something like this existed
protected String getDisplayString(BluetoothDevice b) {
return b.getName();
}
...
}
Run Code Online (Sandbox Code Playgroud) 我有一个ArrayAdapter从一个收集信息AsyncTask.的AsyncTask由上滚动监听器触发.当用户滚动到内容的底部时,将AsyncTask触发并加载更多内容.问题是我已经实现了一个重置按钮.这样做是清除ArrayAdapter并重置通过JSON发送到收集信息的PHP脚本的令牌.重置按钮根本不起作用.当我调用clear()它时,有时会清除列表,然后添加新数据,但是onScrollListener它不起作用,或者它不会清除列表,只是将新数据添加到列表顶部.这是我的代码,所有这些代码都在同一个活动中.
用于PHP脚本的全局类令牌
class CommentInfo {
public CommentInfo() {}
private String commentID;
private int gatheredComments;
private int totalComments;
public String getCommentID(){
return commentID;
}
public void setCommentID(String c){
commentID = c;
}
public int getGatheredComments(){
return gatheredComments;
}
public void setGatheredComments(int forNumber){
gatheredComments = forNumber;
}
}//end commentInfor class
final CommentInfo info = new CommentInfo();
info.setCommentID("0");
Run Code Online (Sandbox Code Playgroud)
该类包含全局变量.CommentID设置为0.这是通过Json发送到PHP脚本.在收集一组注释后,它会将CommentID重置为收集的最后一条注释的ID.单击"重置"按钮时,它会将CommentID重置为0,就像"Activity"刚刚开始一样.
ASYNCTASK收集评论并使用全局变量
class loadComments extends AsyncTask<JSONObject, String, JSONObject> {
@Override
protected …Run Code Online (Sandbox Code Playgroud) android listview global-variables android-arrayadapter android-asynctask
我有一个应用程序,您可以从库中选择图像或设备上的照片文件夹.选定文件的路径存储在Intent中,因此可以在Activities之间传递它们.我通过intent.getDataString()访问路径.
一旦我拥有了所有选定的图像路径,我将它们存储在ArrayList中并将其传递给ImageAdapter,以便在ListView中显示.
我正在设置FileNotFoundException,有没有人有任何想法?
提前致谢
马特.
import java.util.ArrayList;
import uk.co.mobilewebexpert.infowrapsynclibrary.ApplicationObj;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.ListView;
public class QueuedImagesActivity extends Activity {
private static final String TAG = QueuedImagesActivity.class.getSimpleName();
private ImageAdapter adapter;
private ListView imageList;
ApplicationObj appObj;
Intent[] photos;
String path;
private ArrayList<String> imagePaths= new ArrayList<String>(); // Edit your code here..
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.image_listview);
appObj = (ApplicationObj) getApplication();
boolean includeBeingProcessed = true;
try {
photos = appObj.getQueuedPhotos(includeBeingProcessed); …Run Code Online (Sandbox Code Playgroud) 我正在使用jsoup从网页上抓取HTML.但是我无法在listview中将数据转换为两个文本视图.我正在使用ArrayAdapter,我可以将文本设置为一个文本视图.
如何创建自定义适配器以使用jsoup在两个textview中获取文本?
我在运行此代码时遇到此错误,我正在关注树屋构建一个博客阅读器Android应用程序,现在我收到此错误
错误:(120,52)错误:没有为ArrayAdapter找到合适的构造函数(MainListActivity.GetBlogPostsTask,int,String [])构造函数ArrayAdapter.ArrayAdapter(Context,int,int)不适用(参数不匹配; MainListActivity.GetBlogPostsTask无法转换到Context)构造函数ArrayAdapter.ArrayAdapter(Context,int,String [])不适用(参数不匹配; MainListActivity.GetBlogPostsTask不能转换为Context)构造函数ArrayAdapter.ArrayAdapter(Context,int,List)不适用(参数不匹配; MainListActivity.GetBlogPostsTask无法转换为Context)
现在我在这段代码中遇到错误
private void udpateList() {
if(blogData == null){
// TODO: handle error
}else{
try {
JSONArray jsonPosts = blogData.getJSONArray("posts");
blogPostTitles = new String[jsonPosts.length()];
for (int i = 0; i < jsonPosts.length(); i++){
JSONObject post = jsonPosts.getJSONObject(i);
String title = post.getString("title");
title = Html.fromHtml(title).toString();
blogPostTitles[i] = title;
}
// !!!!!!!!!! getting error here !!!!!!!!!!!!!
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, blogPostTitles);
setListAdapter(adapter);
} catch (JSONException e) {
Log.e(TAG, "Exception caught:", e);
} …Run Code Online (Sandbox Code Playgroud) 我想显示一个ArrayList<String>上的所有项目ListView.我用它ArrayAdapter<String>来做这个.问题是只显示了第一项(我的例子中的'foo')ArrayList.有人可以告诉我为什么吗?我错过了什么吗?
我使用Android Studio 2中生成的代码(Tabbed Action Bar Spinner Activity)制作了一个最小的例子.
我的FooActivity:
public class FooActivity extends AppCompatActivity {
...
public static class PlaceholderFragment extends Fragment {
private ListView fooListView;
private ArrayAdapter<String> mAdapter;
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_foo, container, false);
fooListView = (ListView) rootView.findViewById(R.id.foo_list);
updateList();
return rootView;
}
private void updateList() {
ArrayList<String> strings = new ArrayList<>();
strings.add("foo");
strings.add("bar");
if (mAdapter == null) { …Run Code Online (Sandbox Code Playgroud)