下面是我的测试代码,用于创建列表视图,列表视图显示成功,但是,点击事件中存在错误.我想创建一个向新活动发送硬编码消息的意图.但是,它显示该行的错误
Intent intent = new Intent(context, SendMessage.class);
Run Code Online (Sandbox Code Playgroud)
所以问题是,我应该为这门课提供什么?
另外,输出消息代替硬编码,如何捕获列表视图行中的数据并传递给新活动?例如BBB,AAA,R.drawable.tab1_hdpi
,对于第一行.
谢谢.
public class MainActivity extends Activity {
public final static String EXTRA_MESSAGE = "com.example.ListViewTest.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList<ListEntry> members = new ArrayList<ListEntry>();
members.add(new ListEntry("BBB","AAA",R.drawable.tab1_hdpi));
members.add(new ListEntry("ccc","ddd",R.drawable.tab2_hdpi));
members.add(new ListEntry("assa","cxv",R.drawable.tab3_hdpi));
members.add(new ListEntry("BcxsadvBB","AcxdxvAA"));
members.add(new ListEntry("BcxvadsBB","AcxzvAA"));
members.add(new ListEntry("BcxvBB","AcxvAA"));
members.add(new ListEntry("BvBB","AcxsvAA"));
members.add(new ListEntry("BcxvBB","AcxsvzAA"));
members.add(new ListEntry("Bcxadv","AcsxvAA"));
members.add(new ListEntry("BcxcxB","AcxsvAA"));
ListView lv = (ListView)findViewById(R.id.listView1);
Log.i("testTag","before start adapter");
StringArrayAdapter ad = new StringArrayAdapter (members,this);
Log.i("testTag","after start adapter");
Log.i("testTag","set adapter");
lv.setAdapter(ad);
lv.setOnItemClickListener(new OnItemClickListener() { …
Run Code Online (Sandbox Code Playgroud) android listview android-intent onitemclicklistener onitemclick
我正在尝试实现我自己的recyclerview动画 - 我想在不使用任何外部库的情况下实现这一点.这是理论动画应该是什么样子.
用户单击列表上的项目并发生动画,从而打开另一个视图.
在具有最少代码的高级别,可能只是伪代码,为了创建这样的动画,该过程将是什么?
另外我想要注意的是,如果用户点击相同的项目或其他项目,动画也应该能够反向完成
我对这门RecyclerView
课程并不熟悉,并希望了解更多关于它以及与之相关的任何动画.
当我们实现时OnItemClickListener
,我们必须onItemClick
在OnItemClickListener
接口中实现一个抽象方法的方法.在onItemClick
方法中有四个参数.
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Toast.makeText(this, "Clicked on : " + arg2 + " long arg : " + arg3,
Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
我需要知道的是最后两个参数(int arg2, long arg3
)之间的区别.正如你在我的代码中看到的,当我尝试Toast
它时,我得到两个参数的相同值.
在ListView
我的每个项目中EditText
.
当我设置android:focusable="false"
为EditText
然后onItemClick
该ListView
项目正在工作,但EditText
我click
在里面时没有得到光标.
如果我将设置android:focusable="true"
为EditText
,则EditText
可获得焦点,但onItemClick
对于ListView
当我点击它不工作.
如何分离onItemClick
和关注EditText
这个项目?
我尝试在listview上的自定义适配器中获取所选项的值.我尝试使用以下代码:
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
View curr = parent.getChildAt((int) id);
TextView c = (TextView)curr.findViewById(R.id.tvPopUpItem);
String playerChanged = c.getText().toString();
Toast.makeText(Settings.this,playerChanged, Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
一开始,如果我点击,值是好的,但是一旦我滚动并点击另一个项目,我得到了该被点击项目的错误值...任何想法是什么导致了这个?
我试图在OnItemClickListener中调用getActivity():
class ViewTest{ //called in a fragment
setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int p, long i) {
((MainActivity) getActivity()).makeResultsbarVisible();
...
}
});
Run Code Online (Sandbox Code Playgroud)
}
在片段中,类被实例化为:
ViewTest editTest = new ViewTest(this);
Run Code Online (Sandbox Code Playgroud)
但我得到一个我无法解决的错误:
The method getActivity() is undefined for the type new AdapterView.OnItemClickListener(){}
Run Code Online (Sandbox Code Playgroud)
如何在onItemClick()中调用getActivity?谢谢.
Recyclerview
项目点击并不总是有效,有时可以工作,但有更多的点击(不知道点击多少).如果只点击一次无法点击.
注意几天前我尝试点击一次就可以了,但是现在当我尝试再次使用AS运行它不起作用时,即使我没有修改该文件
我的代码
public class RecyclerViewAdapterRiwayat extends RecyclerView.Adapter<RecyclerViewAdapterRiwayat.ViewHolder> {
Context context;
private static final String TAG = RecyclerViewAdapterRiwayat.class.getSimpleName();
List<GetDataAdapterRiwayat> getDataAdapter;
ImageLoader imageLoader1;
String FIXURL = "http://192.168.1.101/AndroidFileUpload/";
String url = FIXURL + "uploads/";
String StatusRiwayat;
public RecyclerViewAdapterRiwayat(List<GetDataAdapterRiwayat> getDataAdapter, Context context) {
super();
this.getDataAdapter = getDataAdapter;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_items_riwayat, parent, false);
ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder Viewholder, int position) { …
Run Code Online (Sandbox Code Playgroud) 这是我认为准确的buttonAdapter类:
package com.example.test;
import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
public class ButtonAdapter extends BaseAdapter {
private Context mContext;
public String [] fName = { "File 1", "File 2", "Roflcopters"};
// Gets the context so it can be used later
public ButtonAdapter(Context c) { mContext = c; }
// Total number of things contained within the adapter
public int getCount () { return 8; }
// Require for structure, not really used in …
Run Code Online (Sandbox Code Playgroud) 在针对API 11到18的Android应用中,我使用字符串数组动态填充了ListView,并为每一行添加了一个侦听器.该文本通常仅涵盖行的约50%.问题是,如果我单击实际文本,则会触发onItemClick操作,但如果我单击该行的空白部分则不会.
我的问题是:如何将侦听器添加到每行的整个区域/视图中?
public class MainActivity extends ActionBarActivity {
protected void onCreate(Bundle savedInstanceState) {
...
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.activity_list_item, my_array);
ListView listview = (ListView) findViewById(R.id.listView1);
listview.setAdapter(adapter);
// add listener
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Log.d(TAG, "position=" + position);
}
});
Run Code Online (Sandbox Code Playgroud)
activity_main.xml中:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android1="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ListView
android:id="@+id/listView1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight=".80"
>
</ListView>
Run Code Online (Sandbox Code Playgroud)
activity_list_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/my_textview"
android:textSize="35sp"
/>
Run Code Online (Sandbox Code Playgroud) android listview android-listview onitemclicklistener onitemclick
我用列创建了一个数据库和表(类别)(_id,title,...)我想从db读取类别并将类别列表显示为列表视图.
这是y代码:
public class MainActivity extends listActivity{
private ArrayAdapter arrayAdapter;
ArrayList results = new ArrayList();
ListView catlist;
Cursor cur;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
catlist = getListView();
int parentid = getIntent().getIntExtra("catid", 0);
openAndQueryDatabase(parentid);
displayCatListView();
}
private void displayCatListView() {
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, results));
catlist.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v,
final int position, long id) {
Toast.makeText(MainActivity.this,
"List View Clicked:" + position, Toast.LENGTH_LONG)
.show();
}
});
}
private void openAndQueryDatabase(int parentid) {
DataBaseHelper db …
Run Code Online (Sandbox Code Playgroud)