小编Sna*_*gon的帖子

获取AlertDialog的默认填充

我需要AlertDialog使用自定义视图.a的消息AlertDialog有一个默认的填充但是当我设置一个视图它没有填充时,我想要获得与默认消息相同的填充.我正在使用扩展Holo主题的风格(如果这是相关的).

AlertDialog.Builder builder = new AlertDialog.Builder(PlaylistListView.this.getContext());
builder.setTitle("Title");
builder.setView(inflate(context, R.layout.music_player_create_dialog, null));
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();
Run Code Online (Sandbox Code Playgroud)

这是内容的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/abc_dialog_padding_material"
    android:paddingRight="@dimen/abc_dialog_padding_material"
    android:paddingTop="@dimen/abc_dialog_padding_top_material"
    android:paddingBottom="@dimen/abc_dialog_padding_top_material">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Title:"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="bottom"
        android:background="@null"
        android:layout_marginTop="20dp"/>
    <View
        android:layout_width="match_parent"
        android:layout_height="1px"
        android:background="@color/divider"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog

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

在c上使用getchar()在输入后获得'Enter'

我正在尝试编写一个简单的程序,要求用户从循环中的菜单中进行选择.我使用getchar()来获取输入,但是我注意到当我输入一个字符并按下'Enter'时,程序会产生两个循环(好像我按两次),一个char作为输入,另一个作为'Enter'作为输入.

我该如何解决?

c getchar

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

main 返回后出现分段错误

我在 Linux 上有一个很长的 c 程序,在 main 返回后出现分段错误。这是一个很长的程序,所以我无法发布它。那么你能帮我看看什么会犯这样的错误吗?

谢谢。

哇,这些答案来得真快。谢谢你们。我想我已经解决了,我忘记了分配一个字符串并将其用作缓冲区。现在我已经分配了它,它不会向我发出分段错误的信号。

再次感谢大家。

c linux program-entry-point segmentation-fault

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

无法在ICS上获得姓名和姓氏的联系方式

我有这个代码来获取联系人的名字和姓氏:

                uri = ContactsContract.Data.CONTENT_URI;
                Cursor curName = getContentResolver().query(uri, null, ContactsContract.Data.CONTACT_ID +" = "+ contactId, null, null);
                if (curName.getCount() > 0){
                    curName.moveToFirst();
                    String nameGiven = curName.getString(curName.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME));
                    String nameFamily = curName.getString(curName.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME));
                    log += nameGiven + ", " + nameFamily + ": ";
                }
Run Code Online (Sandbox Code Playgroud)

我只有一个联系人,所以我不需要循环.在2.3.5设备上它工作正常,返回正确的名称.但是在4.0.4设备上,它会为两个字段返回null,但是如果请求显示名称,它会正确地提供它.

可能是什么问题呢?

android android-contacts

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

使用动态屏幕时如何防止内存泄漏?

我正在创建一个应用程序,该应用程序的屏幕可以向用户显示数据。每个Screen都有自己的数据和自己的布局,因此它有一个方法来返回,int该方法表示用于膨胀它的布局,然后将View其传递给函数以查找特定视图并用数据填充它。

生命周期如下:MainPresenter:

screen.getNextScreen ->
screen.getLayout -> 
view = inflateScreen ->
screen.populateScreen(view) ->
(wait for time elappsed or click) -> repeat
Run Code Online (Sandbox Code Playgroud)

这些Screens也需要在SettingsActivity启用\禁用它们。

所以我创建了一个单例ScreenProvider,它初始化一次,然后返回列表。

public class ScreenProvider {

    private List<Screen> screens;

    private static ScreenProvider instance = new ScreenProvider();

    public static ScreenProvider getInstance(){
        return instance;
    }

    private ScreenProvider() {
        screens = new ArrayList<>();

        screens.add(new Welcome());
        screens.add(new CompoundScreen());
        screens.add(new Times());
        screens.add(new Messages());
        screens.add(new Weekly());
    }

    public List<Screen> getScreenList() {
        return Lists.newArrayList(screens);
    } …
Run Code Online (Sandbox Code Playgroud)

android memory-leaks leakcanary

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

获取视图的当前背景ID

我有一个布局,其背景在drawable中定义,我想在某些条件下将其更改为另一个.如何获取当前背景的标识符以了解它是什么?

android drawable android-layout

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

C++简单的线程问题

我正在编写一个简单的生产者/消费者程序来更好地理解c ++和多线程.在我运行消费者的线程中,我有前两行:

    pthread_cond_wait(&storageCond, &storageMutex);
    pthread_mutex_lock(&storageMutex);
Run Code Online (Sandbox Code Playgroud)

但程序陷入困境,可能是一个僵局.然后我换了线:

    pthread_mutex_lock(&storageMutex);
    pthread_cond_wait(&storageCond, &storageMutex);
Run Code Online (Sandbox Code Playgroud)

它奏效了.有人可以请帮助我理解为什么这有效,而前者没有?

谢谢.

c++ multithreading pthreads producer-consumer

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

尽管在Java中声明为基类型,但如何限制操作将在同一对象之间

我想编写一个方法来获取与参数类型相同的对象,但要在基类中声明它,但我不希望它接受从同一个基础派生的其他对象.

例如,我有类Animal,我想写一个方法sonOf(Animal a),但我不希望有人这样做:

Animal bolt = new Dog();
Animal mittens = new Cat();

bolt.sonOf(mittens);
Run Code Online (Sandbox Code Playgroud)

我认为需要一个泛型,但我不确定如何正确使用它.

谢谢.

java generics inheritance

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

如何在类图中显示我正在使用外部API

我正在编写一个使用某些GoogleMaps API的程序.如何在我的班级图中显示这个?

谢谢.

api uml class-diagram

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

我可以在Java中使用什么数据结构用于表?

我需要存储作为表格的数据,我可以在Java中使用它来做什么?

构成列和行的键是Object,所以我需要一个可以表示为三元组的结构: <Object Row,Object Col, Object Val>对于每一行,Col只有一个val,而对于所有Row X Col,都有一个值.

或者我应该使用简单的二维数组并将索引转换为相应的对象?

java collections data-structures

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

onKeyPreIme不会打电话

我有一个继承的自定义视图,LinearLayout该视图位于ViewSwitcher.我想返回上一次关于Back onPreKeyImepress的视图,所以我覆盖了这个视图但是当我按Back时,它似乎没有输入方法,并且活动处理Back.

我错过了什么?

@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK)
        return viewModel.backClicked();
    return super.onKeyPreIme(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

我在if语句中有一个断点,它永远不会在那里冻结.

PS,我不允许使用碎片.

android keypress android-custom-view android-layout android-event

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

char*的printf获取Segmentation Fault

我正在尝试从套接字读取并使用printf打印到stdout(必须);

但是,每当我从理智的网站上读取特定文件(HTML)时,我都会收到分段错误.

请看一下这段代码并告诉我有什么不对.

int total_read = 0;
 char* read_buff = malloc(BUF_SIZE);
 char* response_data = NULL;
 if (read_buff == NULL){
  perror("malloc");
  exit(1);
 }
 while((nbytes = read(fd, read_buff, BUF_SIZE)) > 0){
  int former_total = total_read;
  total_read += nbytes;
  response_data = realloc(response_data, total_read);
  memmove(response_data + former_total, read_buff, nbytes); //start writing at the end of spot before the increase.
 }
 if (nbytes < 0){
  perror("read");
  exit(1);
 }

 printf(response_data);
Run Code Online (Sandbox Code Playgroud)

谢谢.

c printf segmentation-fault

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

在c ++中删除对象

我有一个带有Node的LinkedList,它有一个字段:

void* _data;
Run Code Online (Sandbox Code Playgroud)

现在,我想删除这些数据,但我不知道数据是原始的还是动态分配的对象.

所以,如果写:

~Node() {
  delete _node;
}
Run Code Online (Sandbox Code Playgroud)

并且数据是动态分配的对象,它会调用对象的析构函数还是会有内存泄漏?

那我怎么能做这个呢?

c++ destructor delete-operator

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