我需要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) 我正在尝试编写一个简单的程序,要求用户从循环中的菜单中进行选择.我使用getchar()来获取输入,但是我注意到当我输入一个字符并按下'Enter'时,程序会产生两个循环(好像我按两次),一个char作为输入,另一个作为'Enter'作为输入.
我该如何解决?
我在 Linux 上有一个很长的 c 程序,在 main 返回后出现分段错误。这是一个很长的程序,所以我无法发布它。那么你能帮我看看什么会犯这样的错误吗?
谢谢。
哇,这些答案来得真快。谢谢你们。我想我已经解决了,我忘记了分配一个字符串并将其用作缓冲区。现在我已经分配了它,它不会向我发出分段错误的信号。
再次感谢大家。
我有这个代码来获取联系人的名字和姓氏:
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,但是如果请求显示名称,它会正确地提供它.
可能是什么问题呢?
我正在创建一个应用程序,该应用程序的屏幕可以向用户显示数据。每个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) 我有一个布局,其背景在drawable中定义,我想在某些条件下将其更改为另一个.如何获取当前背景的标识符以了解它是什么?
我正在编写一个简单的生产者/消费者程序来更好地理解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)
它奏效了.有人可以请帮助我理解为什么这有效,而前者没有?
谢谢.
我想编写一个方法来获取与参数类型相同的对象,但要在基类中声明它,但我不希望它接受从同一个基础派生的其他对象.
例如,我有类Animal,我想写一个方法sonOf(Animal a),但我不希望有人这样做:
Animal bolt = new Dog();
Animal mittens = new Cat();
bolt.sonOf(mittens);
Run Code Online (Sandbox Code Playgroud)
我认为需要一个泛型,但我不确定如何正确使用它.
谢谢.
我正在编写一个使用某些GoogleMaps API的程序.如何在我的班级图中显示这个?
谢谢.
我需要存储作为表格的数据,我可以在Java中使用它来做什么?
构成列和行的键是Object,所以我需要一个可以表示为三元组的结构: <Object Row,Object Col, Object Val>对于每一行,Col只有一个val,而对于所有Row X Col,都有一个值.
或者我应该使用简单的二维数组并将索引转换为相应的对象?
我有一个继承的自定义视图,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
我正在尝试从套接字读取并使用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)
谢谢.
我有一个带有Node的LinkedList,它有一个字段:
void* _data;
Run Code Online (Sandbox Code Playgroud)
现在,我想删除这些数据,但我不知道数据是原始的还是动态分配的对象.
所以,如果写:
~Node() {
delete _node;
}
Run Code Online (Sandbox Code Playgroud)
并且数据是动态分配的对象,它会调用对象的析构函数还是会有内存泄漏?
那我怎么能做这个呢?
android ×5
c ×3
c++ ×2
java ×2
api ×1
collections ×1
destructor ×1
drawable ×1
generics ×1
getchar ×1
inheritance ×1
keypress ×1
leakcanary ×1
linux ×1
memory-leaks ×1
printf ×1
pthreads ×1
uml ×1