对于Android:Listview没有使用键盘感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍androidlistview按钮点击,并为您提供关于027Android可扩展的listview
对于Android:Listview没有使用键盘感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍android listview按钮点击,并为您提供关于027 Android 可扩展的 listview:ExpandableListView 的使用案例、android appwidget listview没有更新、android textview没有正确包装、android – ListView没有ListActivity的有用信息。
本文目录一览:- Android:Listview没有使用键盘(android listview按钮点击)
- 027 Android 可扩展的 listview:ExpandableListView 的使用案例
- android appwidget listview没有更新
- android textview没有正确包装
- android – ListView没有ListActivity
Android:Listview没有使用键盘(android listview按钮点击)
<LinearLayout> <RelativeLayout> Some Image and Text as Title </RelativeLayout> <RelativeLayout> <LinearLayout> <ListView> My message List </ListView> </LinearLayout> <RelativeLayout> Edit Box and Send Button </RelativeLayout> </RelativeLayout> </LinearLayout>
我在显示时明确地将当前选择设置为列表的最后一项(最新).
如果未在底部的“编辑”框中输入文本,则屏幕如下所示:
Top Title List Item 8 List Item 7 ... List Item 2 List Item 1 Bottom Edit Box and Send Button
当我单击编辑框以输入我的消息时,屏幕如下所示:
Top Title List Item 8 ... List Item 5 Bottom Edit Box and Send Button Keyboard
我真正想要的是:
Top Title List Item 4 ... List Item 1 Bottom Edit Box and Send Button Keyboard
有谁可以帮助我吗?
解决方法
基本上只是使用自定义类扩展ListView,将onSizeChanged()方法覆盖为setSelection(getCount());
这似乎是最好的解决方案,看起来谷歌语音使用相同的策略(因为如果你在聊天列表的顶部,然后旋转屏幕,它会让你回到底部).
还要记住,在清单中活动的标签中存在android:windowSoftInputMode =“adjustResize”而不是adjustPan.
027 Android 可扩展的 listview:ExpandableListView 的使用案例
1.ExpandableListView 简介
ExpandableListView 是一种用于垂直滚动展示两级列表的视图,和 ListView 的不同之处就是它可以展示两级列表,分组可以单独展开显示子选项。这些选项的数据是通过 ExpandableListAdapter 关联的。
2.xml 页面布局
(1) 主界面布局 (CommonNumberQueryActivity 对应布局)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".CommonNumberQueryActivity">
<TextView
style="@style/TitleStyle"
android:text="常用号码查询" />
<!--可以扩展的listview:ExpandableListView-->
<ExpandableListView
android:id="@+id/elv_common_number"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ExpandableListView>
</LinearLayout>
(2)elv_child_item_group.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_group_name"
android:text="分组名称"
android:layout_marginLeft="40dp"
android:textSize="16sp"
android:textColor="@color/red"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
(3)elv_child_item_child.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_name"
android:text="电话名称"
android:textSize="16sp"
android:textColor="#000"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/tv_number"
android:text="电话号码"
android:textSize="16sp"
android:textColor="#000"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
3.java 后台代码
package com.example.administrator.test62360safeguard;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.TextView;
import com.example.administrator.test62360safeguard.engine.CommonNumberDao;
import java.util.List;
public class CommonNumberQueryActivity extends AppCompatActivity {
ExpandableListView elv_common_number;
List<CommonNumberDao.Group> groupList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_common_number_query);
initUI();
initData();
}
/**
* 给可扩展的listview:ExpandableListView准备数据,并填充
* 首先将对应的数据库文件放入assets目录下
*/
private void initData() {
CommonNumberDao commonNumberDao=new CommonNumberDao();
//获取数据库中的数据
groupList = commonNumberDao.getGroup();
System.out.println("groupList:"+groupList);
//给ExpandableListView设置数据适配器
elv_common_number.setAdapter(new MyAdapter());
}
private void initUI() {
elv_common_number = findViewById(R.id.elv_common_number);
}
private class MyAdapter extends BaseExpandableListAdapter {
@Override
public int getGroupCount() {
return groupList.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return groupList.get(groupPosition).childList.size();
}
@Override
public CommonNumberDao.Group getGroup(int groupPosition) {
return groupList.get(groupPosition);
}
@Override
public CommonNumberDao.Child getChild(int groupPosition, int childPosition) {
return groupList.get(groupPosition).childList.get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
/**
* 固定写法不需要修改
*/
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
View view = View.inflate(getApplicationContext(), R.layout.elv_child_item_group, null);
TextView tv_group_name = view.findViewById(R.id.tv_group_name);
tv_group_name.setText(getGroup(groupPosition).name);
return view;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
View view = View.inflate(getApplicationContext(), R.layout.elv_child_item_child, null);
TextView tv_name = view.findViewById(R.id.tv_name);
TextView tv_number = view.findViewById(R.id.tv_number);
tv_name.setText(getChild(groupPosition, childPosition).name);
tv_number.setText(getChild(groupPosition, childPosition).number);
return view;
}
/**
* @return 孩子节点是否响应事件
*/
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return false;
}
}
}
4. 效果图
android appwidget listview没有更新
Intent update = new Intent(context,MenuWidgetProvider.class); update.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE); update.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS,appWidgetIds); PendingIntent pIUpdate = PendingIntent.getbroadcast(context,update,0); ((AlarmManager) context.getSystemService(Context.ALARM_SERVICE)). set(AlarmManager.RTC,nextTime.toMillis(false),pIUpdate); Log.d(TAG,"updating: " + dmt.mealName); for (int i = 0; i < appWidgetIds.length; ++i) { int widgetId = appWidgetIds[i]; RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.widget_menu); // meal name views.setTextViewText(R.id.widget_locname,prefs.getString(PREF_WIDGET_LOCNAME,"")); // adapter Intent adapter = new Intent(context,MenuWidgetAdapterService.class); adapter.putExtra(EXTRA_LOCATIONID,prefs.getInt(PREF_WIDGET_LociD,-1)); adapter.putExtra(EXTRA_MEALNAME,dmt.mealName); adapter.putExtra(EXTRA_DATE,dmt.date.toString()); views.setRemoteAdapter(R.id.widget_list,adapter); // update manager.updateAppWidget(widgetId,views); } super.onUpdate(context,manager,appWidgetIds);
奇怪的是,当更新发生时,onUpdate()方法运行 – 我看到Log.d调用的输出 – 但我的RemoteViewsFactory中没有调用onDataSetChanged().即使我调用notifyAppWidgetViewDataChanged,也没有效果.
解决方法
我是如何解决它的:
在你的WidgetProviderClass中
adapter.setData(Uri.fromParts("content",String.valueOf(appWidgetIds[i]+randomNumber),null));
randomNumber是一个随机数(WidgetProvider类的公共静态成员).
然后在RemoteViewsFactory类中,执行:
appWidgetId = Integer.valueOf(intent.getData().getSchemeSpecificPart()) - WidgetProvider.randomNumber;
这让“服务”认为它必须为另一个小部件创建一个Factory,因此创建一个带有更新值的新工厂,该工厂附加到您的小部件.
希望这可以帮助.
android textview没有正确包装
我想避免为textview设置确切的大小.
换句话说,为什么当宽度/高度设置为fill_parent时,rowCreatedAt textView不会包装文本,而其他textViews包装文本就好了?
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_margin="5dp" android:layout_marginBottom="5dp" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <ImageView android:id="@+id/rowUserImage" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/twitter_icon" android:layout_margin="5dp"/> <TextView android:id="@+id/rowCreatedAt" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:textSize="10dp" android:textColor="#ff696969" android:ellipsize="none" android:singleLine="false" android:scrollHorizontally="false" android:layout_weight="1" android:maxLines="100" android:text="aaaaaaaaaaaaaaabbbbbbbbbbbbbb" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/rowUserName" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:text="username" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/rowText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:text="status text" /> </LinearLayout> </LinearLayout>
解决方法
<TextView android:id="@+id/rowCreatedAt" android:layout_width="200dp" android:layout_height="wrap_content" android:gravity="center" android:textSize="10dp" android:textColor="#ff696969" android:ellipsize="none" android:singleLine="false" android:scrollHorizontally="false" android:layout_weight="1" android:maxLines="100" android:text="aaaaaaaaaaaaaaabbbbbbbbbbbbbb" />
将android:layout_width =“fill_parent”更改为android:layout_width =“200dp”
android – ListView没有ListActivity
这是我的main.xml:
<LinearLayout android:id="@+id/relativeLayout1" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView ...[some code].../> <EditText ...[some code].../> <ImageButton ...[some code].../> <Chronometer ..[some code]..../> <ListView android:id="@+id/listView1" android:layout_height="wrap_content" android:layout_width="fill_parent"></ListView>
这是我的onCreate:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button1 = (ImageButton) findViewById(R.id.button1); mChronometer = (Chronometer) findViewById(R.id.chronometer1); editText1 = (EditText) findViewById(R.id.editText1); ListView lv = (ListView) findViewById(R.id.listView1); String[] listword = new String[] {"Hello","World","Foo","Bar"}; lv.setAdapter(new ArrayAdapter<String>(this,R.layout.list_item,listword)); }
这里是list_item.xml
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dp" android:textSize="16sp" > </TextView>
当我在物理设备中进行调试时,应用程序只需保留所有黑色.如果我注释了涉及列表的onCreate()的行,那么应用程序可以工作(显然没有listview).
任何想法可能是错的?
解决方法
这是我的活动与列表视图下面的文本视图和上面的按钮(为了简洁相当有点删除):
public class BNYDirectoryResults extends Activity{ public static String[] stuff; ListView list; BNYAdapter adapter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.resultscreen); TextView headdisplay = (TextView)findViewById(R.id.results); TextView headCount = (TextView)findViewById(R.id.resultsTotal); TextView headPages = (TextView)findViewById(R.id.pages); //Set up the results list,see BNYAdapter list = (ListView)findViewById(R.id.list); adapter = new BNYAdapter (this,BNYDirectory.ReturnResults); list.setAdapter(adapter); //Sets up header information (pages,total results) //Just some stuff to change the TextViews //Passes EmployeeID and Phone Number to AND opens the details page list.setonItemClickListener(new OnItemClickListener(){ public void onItemClick(AdapterView<?> parent,View view,int position,long id){ String EID = BNYDirectory.ReturnResults[position][0]; String phoneNumber = BNYDirectory.ReturnResults[position][2]; BNYDirectoryTransaction.doDetails(EID,phoneNumber); Intent i = new Intent(view.getContext(),BNYDirectoryDetails.class); startActivity(i); } }); } }
这是它的XML文件:
<TextView android:id="@+id/results" android:text="Name" android:gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text/> <TextView android:id="@+id/resultsTotal" android:text="Phone" android:gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text/> <TextView android:id="@+id/pages" android:text="aim" android:gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text/> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/name" android:text="Name" android:gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> <TextView android:id="@+id/phone" android:text="Phone" android:gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> <TextView android:id="@+id/aim" android:text="aim" android:gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> <TextView android:id="@+id/dept" android:text="Dept" android:gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> </LinearLayout> <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/prevButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="PrevIoUs" android:layout_weight="1"/> <Button android:id="@+id/nextButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Next" android:layout_weight="1"/> </LinearLayout> </LinearLayout>
这是列表的自定义适配器:
import android.app.Activity; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; public class BNYAdapter extends BaseAdapter { private Activity activity; private String[][] results; private static LayoutInflater inflater=null; public BNYAdapter(Activity a,String[][]info) { activity = a; results = info; inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public int getCount() { return results.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public static class ViewHolder{ public TextView name; public TextView phone; public TextView aim; public TextView dept; } public View getView(int position,View convertView,ViewGroup parent) { View vi=convertView; ViewHolder holder; if(convertView==null){ vi = inflater.inflate(R.layout.item,null); holder=new ViewHolder(); holder.name=(TextView)vi.findViewById(R.id.nameItem); holder.phone=(TextView)vi.findViewById(R.id.phoneItem); holder.aim=(TextView)vi.findViewById(R.id.aimItem); holder.dept=(TextView)vi.findViewById(R.id.deptItem); vi.setTag(holder); } else holder=(ViewHolder)vi.getTag(); holder.name.setText(BNYDirectory.ReturnResults[position][1]); holder.phone.setText(BNYDirectory.ReturnResults[position][2]); holder.aim.setText(BNYDirectory.ReturnResults[position][3]); holder.dept.setText(BNYDirectory.ReturnResults[position][4]); return vi; } }
和所有在一起,使一个页面像
我们今天的关于Android:Listview没有使用键盘和android listview按钮点击的分享已经告一段落,感谢您的关注,如果您想了解更多关于027 Android 可扩展的 listview:ExpandableListView 的使用案例、android appwidget listview没有更新、android textview没有正确包装、android – ListView没有ListActivity的相关信息,请在本站查询。
本文标签: