我使用的是recyclerView
展示我listitems
的navigation drawer
.我已经实现了onclickListener
,但我一直停留在如何打开一个不同的activity
时,项目的clicked
.我的所有项目都在项目点击截至目前按代码显示toast
用item position
.
我很感激你的帮助.
AdapterClass.java
public class AdapterClass extends RecyclerView.Adapter<AdapterClass.MyViewHolder> {
private LayoutInflater inflater;
private Context context;
List<Information>data= Collections.emptyList();
public AdapterClass(Context context,List<Information>data){
this.context=context;
inflater= LayoutInflater.from(context);
this.data=data;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= inflater.inflate(R.layout.custom_row,parent,false);
MyViewHolder holder=new MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Information current=data.get(position);
holder.title.setText(current.title);
holder.icon.setImageResource(current.iconId);
}
@Override
public int getItemCount() { …
Run Code Online (Sandbox Code Playgroud)我已经使用Android Studio 2.1一段时间了,在我之前的项目中,它似乎工作得很好.但现在我收到了这个错误:
这困扰了我一段时间,直到我决定谷歌解决方案,并最终得到一些信息细节,如如何增加堆大小,这似乎适用于OP.
我还没有成功.
我studio64.vmoptions
直接对文件进行了调整(尽管AS明确建议不然,但我很绝望)
我注意到在集成Google Places API之后发生了一段时间后出现问题,但我无法在两者之间建立连接.
有什么建议?我真的可以使用一些帮助,我积压的工作正在起来:(
这就是我的vmoptions的样子:
# custom Android Studio VM options
#
# *DO NOT* modify this file directly. If there is a value that you would like to override,
# please add it to your user specific configuration file.
#
# See http://tools.android.com/tech-docs/configuration
#
-Xms512m
-Xmx2048m
-XX:MaxPermSize=512m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-da
-Djna.nosys=true
-Djna.boot.library.path=
-Djna.debug_load=true
-Djna.debug_load.jna=true
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-Dawt.useSystemAAFontSettings=lcd
Run Code Online (Sandbox Code Playgroud)
更多信息:我在Linux操作系统上.
我试图将SQLite数据导出到android中的SD卡作为目录上的CSV文件.
所以我在下面尝试过这种方法,显然它只显示了这个文字:
数据库
日期,项目,金额,货币的第一个表
在我的DBHelper.java中,我已经定义了如下函数:
public boolean exportDatabase() {
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
/**First of all we check if the external storage of the device is available for writing.
* Remember that the external storage is not necessarily the sd card. Very often it is
* the device storage.
*/
String state = Environment.getExternalStorageState();
if (!Environment.MEDIA_MOUNTED.equals(state)) {
return false;
}
else {
//We use the Download directory for saving our .csv file.
File exportDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
if (!exportDir.exists())
{ …
Run Code Online (Sandbox Code Playgroud) 我用a RecyclerView
来显示我的抽屉列表项目Navigation Drawer
.OnClick
抽屉列表项目,我能够打开不同的活动,但我希望能够打开将取代主要活动布局的片段.
有没有办法做到这一点?
public class AdapterClass extends RecyclerView.Adapter<AdapterClass.MyViewHolder> {
private LayoutInflater inflater;
private Context context;
List<Information> data = Collections.emptyList();
public AdapterClass(Context context, List<Information> data) {
this.context = context;
inflater = LayoutInflater.from(context);
this.data = data;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.custom_row, parent, false);
MyViewHolder holder = new MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Information current = data.get(position);
holder.title.setText(current.title);
holder.icon.setImageResource(current.iconId);
}
@Override
public …
Run Code Online (Sandbox Code Playgroud) 我试图实现以下但没有成功.我有两个材料设计滑动选项卡.我使用 此库 'com.oguzdev:CircularFloatingActionMenu:1.0.2'来实现FAB但是当我将选项卡滑动到第二个选项卡时,FAB仍然附加到新片段.
我想在第二个片段上隐藏FAB.有没有办法实现这个目标?
android android-fragments android-viewpager floating-action-button
我能够改变我在我的行中点击的行的颜色text
和背景.imageview
recyclerview
navigation drawer fragment
但我的问题是在点击第4项后,第1项也被选中.点击我的第5项后,选择了第2项.
我该如何解决这个问题?那么一次只选择一个项目?
FragmentDrawer.java
public class FragmentDrawer extends Fragment {
private static String TAG = FragmentDrawer.class.getSimpleName();
private RecyclerView recyclerView;
private ActionBarDrawerToggle mDrawerToggle;
private DrawerLayout mDrawerLayout;
private NavigationDrawerAdapter adapter;
private View containerView;
private static String[] titles = null;
private FragmentDrawerListener drawerListener;
public FragmentDrawer() {
}
public void setDrawerListener(FragmentDrawerListener listener) {
this.drawerListener = listener;
}
public static List<NavDrawerItem> getData() {
List<NavDrawerItem> data = new ArrayList<>();
int[] icons = {R.drawable.ic_home,
R.drawable.ic_upcoming,
R.drawable.ic_saved,
R.drawable.ic_wehappened,
R.drawable.ic_persons,
R.drawable.ic_music, …
Run Code Online (Sandbox Code Playgroud)我做了相当多的研究,发现了三个与我的问题相关的案例.
我并不是说我的案子是独一无二的,这是不可能的,我无法用我的绳索让他们的答案为我工作.
问题:我有一个在顶部listview
过滤edit text
.但是当我点击搜索的项目时,我得到另一个图像被选中的结果.文本工作正常,但图像是问题.
例如: list包含带有图像A,B,C,D的行
在搜索C时,您将结果过滤为C.但是单击它会导致显示来自A的图像.它就像图像的位置没有变化但使用原始ArrayList
适配器位置.
任何帮助将不胜感激.
我的适配器:
public class SearchListAdapter extends BaseAdapter implements Filterable {
List<Model> mStringFilterList;
ValueFilter valueFilter;
ImageLoader imageLoader = AppController.getInstance().getImageLoader();
private Activity activity;
private LayoutInflater inflater;
private List<Model> modelItems;
private int mDefaultImageId;
public SearchListAdapter(Activity activity, List<Model> modelItems) {
this.activity = activity;
this.modelItems = modelItems;
mStringFilterList = modelItems;
}
public void setDefaultImageResId(int defaultImage) {
mDefaultImageId = defaultImage;
}
@Override
public int getCount() {
return modelItems.size();
} …
Run Code Online (Sandbox Code Playgroud)我用a sqlite
表示数据.单击一行弹出一行,提示用户从我的活动中删除单行:ListView
CustomListAdapter
alert dialogue
sqlite
private void deleteDialog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MyCart.this);
alertDialog.setCancelable(false);
alertDialog.setMessage("Delete item?");
alertDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
myDb.deleteSingleContact(toString());
}
});
alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
alertDialog.show();
}
Run Code Online (Sandbox Code Playgroud)
在我的DBHelper.java上:
public void deleteSingleContact(String title){
SQLiteDatabase db = this.getWritableDatabase();
db.delete(CONTACTS_TABLE_NAME, CONTACTS_COLUMN_TITLE + "=?", new String[]{title});
//KEY_NAME is a column name
}
Run Code Online (Sandbox Code Playgroud)
但是上面的代码没有删除任何东西.我猜它的功能我没有正确完成.任何建议?
完整的DBHelper.java
public class DBHelper extends SQLiteOpenHelper {
public …
Run Code Online (Sandbox Code Playgroud) 我正在使用本教程使用Firebase实现推送通知,但我似乎无法弄明白.继续抛出错误:
FirebaseInstanceId: background sync failed: SERVICE_NOT_AVAILABLE, retry in 40s
Run Code Online (Sandbox Code Playgroud)
我创建了一个类扩展FirebaseMessagingService
和onMessageReceived(..)
.我收到了数据.我在清单中注册了服务,如:
<!-- [START firebase_service] -->
<service android:name="notifications.MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<!-- [END firebase_service] -->
Run Code Online (Sandbox Code Playgroud)
我在我的应用的根文件夹中添加了最新的google-services.json.不过,我什么也没记录.
当然,我搜索到StackOverflow来检查类似的问题.显然,并不多.找到了这个,但是由于我仍然收到相同的消息,因此不是很有帮助.对我可能错过的事情的任何想法?
我试过检查我的设备是否运行PlayStore服务,确实它有:
public boolean isGooglePlayServicesAvailable() {
GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
int status = googleApiAvailability.isGooglePlayServicesAvailable(getApplicationContext());
if (status != ConnectionResult.SUCCESS) {
if (googleApiAvailability.isUserResolvableError(status)) {
googleApiAvailability.getErrorDialog(MainActivity.this, status, 2404).show();
}
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud) 我跟随了无数的保镖,如http://www.javacodegeeks.com/2013/09/android-listview-with-adapter-example.html 也跟着这里提出的问题如何在点击列表项时使自定义ListView打开其他活动? 但是在这里尝试了答案后(如何在单击列表项时使自定义ListView打开其他活动?)每当我从列表视图中选择一个项目时,我的应用程序就会一直停止.我的主要活动代码:
public class MainActivity extends Activity {
ListView list;
String[] web = {
"Notifications",
"School",
"What's Hot",
"Tell a friend",
"Hit us up",
"Settings",
"About & Help"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CustomList adapter = new
CustomList(MainActivity.this, web, imageId);
list=(ListView)findViewById(R.id.list);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
switch(position){
case 0: Intent newActivity = new Intent(MainActivity.this, Notifications.class);
startActivity(newActivity);
break;
case 1: Intent …
Run Code Online (Sandbox Code Playgroud)我试图添加列ID,它将是具有自动增量属性的主键.所以我执行这个SQL查询:
ALTER TABLE `user_info` ADD `id` INT NULL AUTO_INCREMENT PRIMARY KEY FIRST ;
Run Code Online (Sandbox Code Playgroud)
该列已成功创建,甚至为现有数据创建id.
但我不能再在桌子里插入任何东西了.
<?php
require "init.php";
$name=$_POST["user"];
$user_email=$_POST["user_email"];
$user_pass=$_POST["user_pass"];
$sql_query="SELECT * FROM user_info WHERE user_email='$user_email'";
$check=mysqli_fetch_array(mysqli_query($con,$sql_query));
if(isset($check)){
$response["success"]=false;
$response["message"]="Email already exists";
echo json_encode($response);
}else{
$sql_query="insert into user_info values('$name','$user_email','$user_pass');";
if(mysqli_query($con,$sql_query)){
//echo "<h3> Data Insert success</h3>";
$response["success"]=true;
$response["message"]="Registration successful";
echo json_encode($response);
}
else{
$response["success"]=false;
$response["message"]="Registration unsuccessful";
echo json_encode($response);
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我google了一下,发现我可以插入0或null代替我的id.
我故意读到:
为了利用列的自动递增功能,在插入行时不要为该列提供值.数据库将为您提供一个值.
当我删除列id时,代码运行良好,但是当我添加它时,我得到响应Registration unsuccessful
在我的json中.
我错过了什么?
我试图将一些行数据从列表传递到下一个屏幕以显示详细信息,但似乎无法实现它.这就是我在导航时传递道具的方式:
_renderRow(row,sectionId, rowId, highlightRow) {
var self = this;
let navigate=this.props.navigation;
return (
<TouchableOpacity onPress={() => navigate('ChatList',{row})}>
........//ignored code
Run Code Online (Sandbox Code Playgroud)
在另一个屏幕上ChatList.js:
import React, { Component } from 'react';
import {
StyleSheet,
Text,
View,
TouchableOpacity,
TextInput,
Image
} from 'react-native';
import { StackNavigator } from 'react-navigation';
const ChatList = () => {
return (
<View>
</View>
);
}
ChatList.navigationOptions = {
//trying to set the title from the data sent around here
title: 'ChatList Title',
headerStyle: {
backgroundColor: '#2196F3',
},
headerTitleStyle: { …
Run Code Online (Sandbox Code Playgroud)我正在获取json
数据:
[
{
"name": "A",
"count": "2"
},
{
"name": "B",
"count": "1"
},
{
"name": "A",
"count": "3"
},
{
"name": "C",
"count": "10"
},
{
"name": "B",
"count": "2"
}
]
Run Code Online (Sandbox Code Playgroud)
所以我使用for
循环,正常的东西迭代数据.但我想最终得到arraylist
这样的结论:
Ç - > 7
A - > 5
乙 - > 3
请注意,list
从最高到最低排序.到目前为止我尝试的是:
//create my arraylists
//has both name and count
ArrayList<String>namesWithCountList = new ArrayList<>();
//has only names
ArrayList<String>namesList = new ArrayList<>();
//get json array..
//iterate using for …
Run Code Online (Sandbox Code Playgroud) android ×10
sqlite ×2
arraylist ×1
csv ×1
firebase ×1
java ×1
javascript ×1
jvm ×1
mysql ×1
php ×1
react-native ×1
react-router ×1
sorting ×1