小编sve*_*ija的帖子

如何将<Spanned>放入list.setAdapter?

如果我有的话,简单但有点棘手

list.setAdapter(new ArrayAdapter<String>(this,R.layout.double_row, R.id.doubleRow, articleItemsHelper));
Run Code Online (Sandbox Code Playgroud)

如果articleItemsHelperString,它可以工作,但我想在那里有HTML格式,所以当articleItemsHelper类型为Spanned时,这个(适配器)不起作用.

ArrayList<Spanned> articleItemsHelper = new ArrayList<Spanned>();
Run Code Online (Sandbox Code Playgroud)

解决方案是什么?

编辑:这是解决方案 - 自定义适配器

private static class SpannedAdapter extends BaseAdapter {
     private LayoutInflater mInflater;
     private ArrayList<Spanned> mArticleList;

     public SpannedAdapter(Context context, ArrayList<Spanned> articleList) {
        mInflater = LayoutInflater.from(context);
        mArticleList = articleList;
     }

     public int getCount() {
         return mArticleList.size();
     }

     public Object getItem(int position) {
         return position;
     }

     public long getItemId(int position) {
         return position;
     }

     public View getView(int position, View convertView, ViewGroup parent) …
Run Code Online (Sandbox Code Playgroud)

android listview list arraylist spanned

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

在不同数组中查找"最常见元素"的算法

我有5个数组,其中包含一些插入的元素(数字):

1,4,8,10
1,2,3,4,11,15
2,4,20,21
2,30

我需要在这些数组中找到最常见的元素,并且每个元素都应该一直持续到最后(参见下面的示例).在这个例子中,它是粗体组合(或者是相同的一个,但最后是"30",它是"相同的")因为它包含最少数量的不同元素(只有两个,4和2/30).

这种组合(见下文)并不好,因为如果我有前任."4"它必须"去"直到它结束(下一个数组必须完全不包含"4").所以组合必须一直持续到最后.

1,4,8,10
1,2,3,4,11,15
2,4,20,21
2,30

EDIT2:OR

1,4,8,10
1,2,3,4,11,15
2,4,20,21
2,30

或其他任何东西都不好.

是否有一些算法可以加速这个问题(如果我有数千个阵列,每个阵列有数百个元素)?

要说清楚 - 解决方案必须包含最少数量的不同元素,并且必须将组(相同数字)组从第一个 - 较大的组分组到最后一个 - 最小的元素.因此在上面的例子中,4,4,4,2比4,2,2,2更好,因为在第一个例子中,4的组大于2的组.

编辑:更具体.解决方案必须包含最少数量的不同元素,并且这些元素必须从头到尾分组.所以,如果我有三个arrray像

1,2,3
1,4,5
4,5,6

解决方案是1,1,4或1,1,5或1,1,6不是2,5,5,因为1有更大的组(其中两个)而不是2(只有一个).

谢谢.

编辑3:我不能更具体:(

EDIT4:@spintheblack 1,1,1,2,4是正确的解决方案,因为第一次使用的数字(假设在位置1)以后不能使用(除了它在1的SAME组中).我会说分组有"优先级"吗?另外,我没有提到它(对不起),但是数组中的数字没有以任何方式排序,我在这篇文章中输入它是因为我更容易遵循.

arrays algorithm

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

在Dialog中显示键盘

我有这段代码(RelativeLayout只是我主要布局中的一行,并不重要).

RelativeLayout cellphoneNumberLayout = (RelativeLayout) findViewById(R.id.cellphone_number);
        cellphoneNumberLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SettingsDialog myDialog = new SettingsDialog(Main.this);
                myDialog.show();
            }
        });
Run Code Online (Sandbox Code Playgroud)

在我的自定义对话框(SettingsDialog)中,我有EditText和一个Button.当显示对话框时,如何强制键盘立即打开并关注我的(单个)EditText字段?

我尝试使用经典的"强制",我在这里找到了SO,但这不是活动,而是一个对话框.

编辑:我试过这个,但它不起作用.将myDialog声明为类变量并添加到myDialog.show()下面;

myDialog.myEditTextField.setOnFocusChangeListener(new View.OnFocusChangeListener() {
                    @Override
                    public void onFocusChange(View v, boolean hasFocus) {
                        if (hasFocus) {
                            myDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
                        }
                    }
                });
Run Code Online (Sandbox Code Playgroud)

什么都没发生.

android android-edittext

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

内部存储器中带有EXTRA_OUTPUT的Android ACTION_IMAGE_CAPTURE

如果我正在打电话的话,我正从相机拍照

File file = new File(getFilesDir().getAbsolutePath() + "/myImage.jpg");
Uri outputFileUri = Uri.fromFile(file);

cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
Run Code Online (Sandbox Code Playgroud)

OK button 在相机应用程序不起作用,根本什么都不做(实际上不会将其保存到我提供的内部存储器,因此应用程序本身什么都不做).

如果我打电话

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/myImage.jpg");
Uri outputFileUri = Uri.fromFile(file);

cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
Run Code Online (Sandbox Code Playgroud)

一切都很好,照片存储在SDCard上.

我的问题是,有没有办法在没有SDCard的情况下以全分辨率存储捕获照片?

camera android android-sdcard

4
推荐指数
2
解决办法
7747
查看次数

以编程方式在视频剪辑上添加100个图像叠加

我正在寻找一种程序化视频编辑解决方案,它可以提供API,用于在视频(1080p)剪辑的特定坐标上的特定时间/帧中添加图像和文本叠加,以及调整大小到720p等.

我试过AviSynth,但由于"内存不足错误"导致总共约400次覆盖后被阻止 - 请参阅AviSynth Out of Memory错误(100s图像叠加)

还有什么我可以尝试的(示例代码会很棒)?

video video-processing avisynth

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

如何在Android上找到用户SIM卡的国家/地区?

有没有办法检查用户的国家/地区?"Locale"不够好,因为有很多英语语言环境,但它们遍布全世界.

也许以某种方式与IMEI或......?

所以实际上我需要找出SIM卡所属的国家/地区?

编辑:不允许使用 GPS或互联网.

country android sim-card

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

什么更快?"爆炸"或其他专栏?

我有一种情况,我需要在我的数据库中存储多个值,但它们是约.同一类型的所以现在我也不知道是不是更快的值存储为一个字符串VARCHAR领域的MySQL与分离逗号

1,2,3,4,5
Run Code Online (Sandbox Code Playgroud)

然后在我需要它们的每一个爆炸它们

$values = explode(",", $stringFromDatabase);
Run Code Online (Sandbox Code Playgroud)

其中$ stringFromDatabase是来自mysql_query + mysql_fetch_array的String,并使用$ values [0],$ values [1] 依次获取它们,依此类推

要么

为每个变量添加另一列(最多7行),然后为特定行调用数据库,并使用标准mysql_query + mysql_fetch_array过程按列分别获取它们?

那么,一列与commmas或多列连接?重要的是要注意,我总是需要它们(一个接一个)并且排序并不重要 - 所以我认为第一个选择 - 更好,更快?

php mysql explode

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

更新MySQL中的标记映射表

我有一个MySQL标记映射表,其结构来自以下帖子 - 用于标记或标记的推荐SQL数据库设计

我有两列 - TagID和ItemID.我想对某个项目进行更新(更改它的标签).例如,我有ID = 1的项目,tagID为1,2,3.但在更新用户想要的只有ID为3,4,5的标签.显然我必须删除"1"和"2",保留"3"并添加"4"和"5".

什么是最简单的方式/最优雅的方法(使用INSERT INGORE'S,ON DUPLICATE UPDATE或MySQL的其他"功能")?

删除所有并重新插入所有"新"标签或通过它们全部删除/插入?它将是最小1,最多5个标签.或者对于如此少量的标签/操作真的无关紧要?

mysql tags tagging

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

GSON不会序列化/反序列化扩展类

是否有一个选项(除了编写自定义的串行/解串器)GSON library,以序列化/反序列化以后扩展类的一些水平.

例如,请参阅以下用例

class FirstClass {
    int firstVariable;
}

class SecondClass extends FirstClass {
    int secondVariable;
}

class ThirdClass extends SecondClass {
    int thirdVariable;
}
Run Code Online (Sandbox Code Playgroud)

现在使用时fromJson,toJson我只想序列化/反序列化层次结构中的前两个类 - ThirdClassSecondClass.这意味着它会忽略整个FirstClass(以及firstVariable它),因为它已经存在了level 3.

java gson

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

可以使用"mContext"(在onCreate初始化)吗?

这是一个坏习惯,为什么会这样?因此,在onCreate之后添加此权限的每个活动 ......

mContext = this;
Run Code Online (Sandbox Code Playgroud)

然后用它在所有其他情况下的上下文必需的?例如

Toast.makeText(mContext, mContext.getString(R.string.someString), Toast.LENGTH_LONG);
Run Code Online (Sandbox Code Playgroud)

编辑:如果我有这样的事情......如何传递上下文怎么办?因为不能应用(因为View.OnClickListener()).

someButton = (Button) findViewById(R.id.someButton);
someButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(mContext, mContext.getString(R.string.warning), Toast.LENGTH_LONG).show();
    }
});
Run Code Online (Sandbox Code Playgroud)

android android-context

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