小编joh*_*ann的帖子

复制具有条目限制的Java列表

我想List<Object>从简单List<Object>的20个第一个条目创建一个新的.

//my first array
List<Staff> staffs = new ArrayList<Staff>();

staffs.add(new Staff(...));
staffs.add(new Staff(...));
staffs.add(new Staff(...));
staffs.add(new Staff(...));


List<Staff> second = magicMethodForClone(staffs,20);
Run Code Online (Sandbox Code Playgroud)

我想知道一种方法是否magicMethodForClone存在.

谢谢

java collections clone list

9
推荐指数
2
解决办法
8619
查看次数

Android:BroadcastReceiver应用程序安装/卸载

我想安装apk文件并设置广播接收器以捕获有关安装状态的信息.

我准备了一个BroadcastReceiver类:

public class newPackageReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d("DEBUG"," test for application install/uninstall");
    }

}
Run Code Online (Sandbox Code Playgroud)

在主要活动中,我首先注册一个新的接收器对象,然后实例化应用程序安装按钮.

public void onCreate(Bundle savedInstanceState) {
...
IntentFilter filter = new IntentFilter();
        filter.addAction(Intent.ACTION_PACKAGE_ADDED);
        filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
        filter.addAction(Intent.ACTION_PACKAGE_DATA_CLEARED);
        filter.addAction(Intent.ACTION_PACKAGE_INSTALL);
        filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
        filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
        filter.addAction(Intent.ACTION_PACKAGE_RESTARTED);

        receiver = new newPackageReceiver();
        registerReceiver(receiver, filter);
        ...

dlButton.setText(R.string.dl_button);
dlButton.setOnClickListener(new AppliDownloadOnClickListener(this ));   


@Override
public void onDestroy(){
     unregisterReceiver(receiver);
     super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)

在我的OnclickListener类中,我把:

@Override
    public void onClick(View v) {

    // actually, the below process is in an asyncTask
    URL url;
    Intent promptInstall; …
Run Code Online (Sandbox Code Playgroud)

android broadcast intentfilter android-intent

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

Android:使用多个应用程序的活动创建单个任务(Lauchmode问题)

我不知道如何处理这个Android问题.简而言之,我的2个应用程序之间的流程如下:

  1. 应用程序A绑定到市场应用程序(AIDL)中的服务
  2. 注册BroadcastReceiver并调用返回pendingIntent的服务方法.
  3. 启动PendingIntent(包含BillingActivity实例).
  4. 使用" startActivityForResult() " 启动PaymentActivity .
  5. 做一些东西,终止(完成()).
  6. onActivitiyResult()方法中,发送一个Broadcast并终止.
  7. 获取广播信息.

在我的2个应用程序之间流

问题 :

我想用以下组件创建一个任务:

  • Top1Activity(应用A)
  • BillingActivity(市场应用)
  • PaymentActivity(市场应用)

Android的前台和后台任务

我尝试更改BillingActivity + PaymentActivity "launchMode":

singleInstance

为它们创建了一个新任务.按下返回按钮(或调用finish()方法)时,用户将按预期重定向到上一个活动.问题:"StartActivityForResult"不能在多个任务之间使用(立即调用onActivityResult).

SingleTask

在BillingActivity中按下返回按钮(或调用finish()方法)时,用户将被重定向到Top2Activity(在后台任务中).

我试图解决它已经失去了超过48小时.我很感激你的帮助.我可以根据需要发布代码.

谢谢

-----------编辑2015-02-02

按照David的建议,我删除了所有特殊启动模式:

TOP2Activity(背景):

<activity
    android:name=".activities.MainActivity"
    android:configChanges="orientation|keyboardHidden"
    android:label="@string/title_activity_main"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="stateAlwaysHidden|adjustPan" >
    <meta-data
        android:name="android.app.searchable"
        android:resource="@xml/searchable" />

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data android:scheme="xxx" />
        <data android:host="xxx" …
Run Code Online (Sandbox Code Playgroud)

android aidl android-intent launchmode android-pendingintent

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

Android:使用viewPager加载限制片段

我有3个片段由FragmentPagerAdapter管理,设置为viewPager.

我想逐个加载片段,但是当执行FragmentActivity的onCreate方法时,会执行2个第一个片段(onCreateView方法).

我试图用setOffscreenPageLimit方法限制片段加载但没有任何改变.

mPagerAdapter =  new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
pager = (ViewPager) super.findViewById(R.id.tabviewpager);
pager.setOffscreenPageLimit(0);
pager.setAdapter(this.mPagerAdapter);
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助 .

android android-fragments android-viewpager fragmentpageradapter

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

在GridView(Android)中加载异步图像

我有一个GridView图片/文本,从不同的服务器加载(我只知道URL).我试图根据ryac的教程修改我的代码.

在我的Activity文件中,我设置GAdapter为我GridView喜欢这样:

GridView mGridMain = (GridView)findViewById(R.id.gvMain);
mGridMain.setAdapter(new GAdapter(this, listAppInfo));
Run Code Online (Sandbox Code Playgroud)

我修改了自己的适配器并尝试调整它:

public class GAdapter extends BaseAdapter {

 private Context mContext;
 private List<SiteStaff> mListAppInfo;
 private HashMap<Integer, ImageView> views;

 /**
  * @param context
  * @param list
  */
 public GAdapter(Context context, List<SiteStaff> list) {
  mContext = context;
  mListAppInfo = list;  
 }

 @Override
 public int getCount() {
  return mListAppInfo.size();
 }

 @Override
 public Object getItem(int position) {
  return mListAppInfo.get(position);
 }

 @Override
 public long getItemId(int position) {
  return position; …
Run Code Online (Sandbox Code Playgroud)

android android-gridview android-asynctask

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

android:使用LayoutParams设置按钮之间的边距

我想垂直自动生成按钮,按钮之间的底边距为20px.我尝试使用LayoutParams对象设置边距,但没有成功.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/regions_search"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginBottom="30dip"
    android:orientation="vertical" >
</LinearLayout>



@Override
public void onCreate(Bundle savedInstanceState) {

    ...

    for (Region region : regionsList) {

        //create new button     
        Button button = new Button(mContext);

        //set infos
        int id = Integer.parseInt(Long.toString((Long) region.getId()));        button.setId(id);
        button.setText(region.getName() + "( " + region.getStores_nb() + " )");

        //Layoutparams setting
        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
        params.setMargins(0, 0, 0, 20);

        button.setLayoutParams(params);

        myLinear.addView(button);

        }
Run Code Online (Sandbox Code Playgroud)

正如您在图像上看到的那样,图像之间没有空间.有人知道为什么吗?谢谢 ! 在此输入图像描述

android button layoutparams

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

Java / Android中的数字签名(RSA密钥)

我想在我的java / android项目中使用存储在数据库中的私钥(RSA)生成数字签名。

我的2个密钥是使用以下代码生成的(项目正在生产中,我无法更改):

// Get keys pair (RSA)
KeyPair rsaKyePair = createKeyPair();

// Get private/ public keys and store them in DB
String pri = getPrivateKeyBase64Str(rsaKyePair);
String pub = getPublicKeyBase64Str(rsaKyePair));


public static KeyPair createKeyPair() {
    KeyPair keyPair = null;

    try {
        KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA");
        keygen.initialize(KEY_LENGTH);
        keyPair = keygen.generateKeyPair();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
        return null;
    }
    return keyPair;
}

public static String getPrivateKeyBase64Str(KeyPair keyPair){
    if (keyPair == null) return null;
    return getBase64StrFromByte(keyPair.getPrivate().getEncoded());
}

public static …
Run Code Online (Sandbox Code Playgroud)

java encryption android rsa digital-signature

5
推荐指数
0
解决办法
6106
查看次数

Android WebView:网址加载后崩溃

当使用我的 webView 加载 url 时,应用程序在几秒钟后崩溃(没有错误日志...)。

\n\n

我的代码:

\n\n
 wv = new WebView(this);\n        wv.clearCache(true);\n        wv.clearHistory();\n        wv.getSettings().setJavaScriptEnabled(true);\n        wv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);\n\n        wv.setDownloadListener(new DownloadListener() {\n            @Override\n            public void onDownloadStart(String url, String userAgent,\n                                        String contentDisposition, String mimetype, long contentLength) {\n                Intent intent = new Intent(Intent.ACTION_VIEW);\n                intent.setType(mimetype);\n                intent.setData(Uri.parse(url));\n                startActivity(intent);\n            }\n        });\n\n\n        wv.setWebViewClient(new WebViewClient() {\n            @Override\n            public boolean shouldOverrideUrlLoading(WebView view, String url) {\n\n                // TODO change for other domains\n                URL nextUrl;\n                try {\n                    nextUrl = new URL(url.toString());\n                }catch (MalformedURLException e){\n                    nextUrl = null;\n                }\n\n                if(nextUrl !=null && nextUrl.getHost().toString().equals(DOMAIN)) {\n …
Run Code Online (Sandbox Code Playgroud)

javascript java android webview

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

ANDROID:在listView中加载异步图片

我想显示带有自定义适配器的ListView(带图片和文本).

图像是从远程服务器加载的,所以我决定使用AsyncTask.

实际上,图片显示效果很好但如果我快速向下滚动,则在1/2秒内显示错误的图片(加载后,会出现正确的图片)

这是我的适配器代码:

public class GiAdapter extends BaseAdapter {

    private Context mContext;

    private List<SiteStaff> mListAppInfo;
    private HashMap<Integer, ImageView> views;
    private HashMap<String,Bitmap> oldPicts = new  HashMap<String,Bitmap>();
    private LayoutInflater mInflater;
    private boolean auto;

    private final String BUNDLE_URL = "url";
    private final String BUNDLE_BM = "bm";
    private final String BUNDLE_POS = "pos";
    private final String BUNDLE_ID = "id";

    public GiAdapter(Context context, List<SiteStaff> list) {
        mContext = context;
        mListAppInfo = list;
        views = new HashMap<Integer, ImageView>();
        mInflater = LayoutInflater.from(mContext);

    }

    @Override
    public int …
Run Code Online (Sandbox Code Playgroud)

android listview adapter android-asynctask

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

Play framework 2.0:使用简单模型进行H2 DB演变

我试图创建一个简单的控制器/模型(基于播放2.0的示例代码)并获得有关DB演变的消息:

Database 'default' needs evolution!

An SQL script will be run on your database - "Apply this script now"

1 # --- Rev:1,Ups - fbdc2fd
2 create table group (
3 id                        bigint not null,
4 name                      varchar(255),
5 description               varchar(255),
6 due_date                  timestamp,
7 constraint pk_group primary key (id))
8 ;
9 
10 create sequence group_seq;
Run Code Online (Sandbox Code Playgroud)

但是当点击按钮时,我收到以下错误消息:

Database 'default' is in inconsistent state!

An evolution has not been applied properly. Please check the problem and resolve it manually before …
Run Code Online (Sandbox Code Playgroud)

h2 playframework ebean playframework-2.0

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