小编Ste*_*mau的帖子

如何在recyclerView项目onclick上打开不同的活动

我使用的是recyclerView展示我listitemsnavigation drawer.我已经实现了onclickListener,但我一直停留在如何打开一个不同的activity时,项目clicked.我的所有项目都在项目点击截至目前按代码显示toastitem 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 android-recyclerview

34
推荐指数
4
解决办法
8万
查看次数

没有足够的内存来执行请求的操作 - Android studio

我已经使用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操作系统上.

android jvm android-studio

13
推荐指数
1
解决办法
1万
查看次数

将SQLite数据库导出到android中的csv文件

我试图将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)

csv sqlite android

12
推荐指数
2
解决办法
3万
查看次数

如何在recyclerview OnClick上打开不同的片段

我用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)

android android-fragments android-recyclerview

9
推荐指数
3
解决办法
4万
查看次数

如何仅在Tab布局中将浮动操作按钮专门放在一个片段上

我试图实现以下但没有成功.我有两个材料设计滑动选项卡.我使用 此库 'com.oguzdev:CircularFloatingActionMenu:1.0.2'来实现FAB但是当我将选项卡滑动到第二个选项卡时,FAB仍然附加到新片段.

我想在第二个片段上隐藏FAB.有没有办法实现这个目标?

android android-fragments android-viewpager floating-action-button

8
推荐指数
2
解决办法
2万
查看次数

Recyclerview行项目选择颜色更改

我能够改变我在我的行中点击的行的颜色text和背景.imageviewrecyclerviewnavigation 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)

android navigation-drawer android-recyclerview

8
推荐指数
2
解决办法
2万
查看次数

listview上的搜索过滤器在项目点击时返回错误的结果

我做了相当多的研究,发现了三个与我的问题相关的案例.

解决方案1

解决方案2

解决方案3

我并不是说我的案子是独一无二的,这是不可能的,我无法用我的绳索让他们的答案为我工作.

问题:我有一个在顶部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)

android android-filterable

7
推荐指数
2
解决办法
7005
查看次数

如何删除android sqlite中的单行

我用a sqlite表示数据.单击一行弹出一行,提示用户从我的活动中删除单行:ListViewCustomListAdapteralert dialoguesqlite

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)

sqlite android

5
推荐指数
1
解决办法
2万
查看次数

FirebaseInstanceId:后台同步失败:SERVICE_NOT_AVAILABLE

我正在使用本教程使用Firebase实现推送通知,但我似乎无法弄明白.继续抛出错误:

FirebaseInstanceId: background sync failed: SERVICE_NOT_AVAILABLE, retry in 40s
Run Code Online (Sandbox Code Playgroud)

我创建了一个类扩展FirebaseMessagingServiceonMessageReceived(..).我收到了数据.我在清单中注册了服务,如:

 <!-- [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)

android firebase firebase-cloud-messaging

4
推荐指数
1
解决办法
1万
查看次数

如何从自定义列表视图中启动项目单击的不同活动?

我跟随了无数的保镖,如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)

android-intent android-activity

3
推荐指数
1
解决办法
2万
查看次数

将列ID添加到现有表

我试图添加列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中.

这里这里的解决方法似乎没有解决我的问题.

我错过了什么?

php mysql

1
推荐指数
1
解决办法
137
查看次数

React Native:如何将道具从一个屏幕导航到另一个屏幕

我试图将一些行数据从列表传递到下一个屏幕以显示详细信息,但似乎无法实现它.这就是我在导航时传递道具的方式:

_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)

javascript android react-router react-native

1
推荐指数
1
解决办法
2133
查看次数

如何使用字符串降序对arrayList进行排序

我正在获取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)

java sorting arraylist

0
推荐指数
1
解决办法
415
查看次数