求助:android中AlertDialog无法显内容

jaysu1990 2012-04-18 08:33:49
在新建AlterDialog中,点击选择铃声按钮,弹出对话框,但是改对话框是白色的,只有点击列表选项的一瞬间才看得到内容,求大侠解释啊。截图:

final Builder b = new AlertDialog.Builder(this);
musicList.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("click", "成功");
musicFileList = new ArrayList<File>();
adapter.clear();
searchMusci(path);
b.setAdapter(adapter, new android.content.DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
musicPath=musicFileList.get(arg1).getAbsolutePath().toString();

}
});
b.create().show();
}
});
...全文
475 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jaysu1990 2012-04-20
  • 打赏
  • 举报
回复
还是不行。。。[Quote=引用 5 楼 的回复:]

主要的原因是AlertDialog默认背景颜色是白的,里面的文字也是白的,所以看上去就像空的一样,代码改一下,
先用ListView的方式加载Adapter,再将AlertDialog设置View,代码如下:

import java.io.File;
import java.util.ArrayList;
import java.util.Calendar;
import java……
[/Quote]
AMinfo 2012-04-20
  • 打赏
  • 举报
回复
测试过是OK的

[Quote=引用 6 楼 的回复:]

还是不行。。。引用 5 楼 的回复:

主要的原因是AlertDialog默认背景颜色是白的,里面的文字也是白的,所以看上去就像空的一样,代码改一下,
先用ListView的方式加载Adapter,再将AlertDialog设置View,代码如下:

import java.io.File;
import java.util.ArrayList;
import java.util……
[/Quote]
AMinfo 2012-04-19
  • 打赏
  • 举报
回复
贴完整代码看看吧
jaysu1990 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

贴完整代码看看吧
[/Quote]package jxh.android.alarm;

import java.io.File;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.PendingIntent;
import android.app.Service;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TimePicker;
import android.widget.Toast;


public class SpecialAlarm extends Activity {
static List<File> musicFileList;
static String musicPath;
AlarmManager aManager;
Calendar currentTime = Calendar.getInstance();
ArrayAdapter<String> adapter;
File path;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub

super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button addAlarm = (Button)findViewById(R.id.add);
Button gesture = (Button)findViewById(R.id.gesture);
Button musicList = (Button)findViewById(R.id.musicList);

adapter= new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
final Builder b = new AlertDialog.Builder(this);
path = Environment.getExternalStorageDirectory();

// 获取AlarmManager对象
aManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE);
addAlarm.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View source)
{
Calendar currentTime = Calendar.getInstance();
// 创建一个TimePickerDialog实例,并把它显示出来。
new TimePickerDialog(SpecialAlarm.this,
0, // 绑定监听器
new TimePickerDialog.OnTimeSetListener()
{
@Override
public void onTimeSet(TimePicker tp, int hourOfDay,
int minute)
{
// 指定启动AlarmActivity组件
Intent intent = new Intent(SpecialAlarm.this
, RecogniseGesture.class);
// 创建PendingIntent对象
PendingIntent pi = PendingIntent.getActivity(
SpecialAlarm.this, 0, intent, 0);
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
// 根据用户选择时间来设置Calendar对象
c.set(Calendar.HOUR , hourOfDay);
c.set(Calendar.MINUTE , minute);
// 设置AlarmManager将在Calendar对应的时间启动指定组件
aManager.set(AlarmManager.RTC_WAKEUP
, c.getTimeInMillis(), pi);
// 显示闹铃设置成功的提示信息
Toast.makeText(SpecialAlarm.this ,
"闹铃设置成功啦" , 3000).show();
}
}, currentTime.get(Calendar.HOUR_OF_DAY)
, currentTime.get(Calendar.MINUTE), false)
.show();
}
});

gesture.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(SpecialAlarm.this, AddGesture.class);
startActivity(intent);
}
});



musicList.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("click", "成功");
musicFileList = new ArrayList<File>();
adapter.clear();
searchMusci(path);
b.setAdapter(adapter, new android.content.DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
musicPath=musicFileList.get(arg1).getAbsolutePath().toString();

}
});
b.create().show();
}
});
}

public void searchMusci(File file) {
File[] files = file.listFiles();
for(int i=0; i<files.length; i++) {
if(files[i].isDirectory()) {
searchMusci(files[i]);
}else if(files[i].getName().endsWith(".mp3")){
musicFileList.add(files[i]);//获得MP3文件的列表
adapter.add(files[i].getName().toString());
Log.d("search", "成功");
}
}

}
}


AMinfo 2012-04-19
  • 打赏
  • 举报
回复
主要的原因是AlertDialog默认背景颜色是白的,里面的文字也是白的,所以看上去就像空的一样,代码改一下,
先用ListView的方式加载Adapter,再将AlertDialog设置View,代码如下:

import java.io.File;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.app.Service;
import android.app.TimePickerDialog;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TimePicker;
import android.widget.Toast;


public class SpecialAlarm extends Activity {
static List<File> musicFileList;
static String musicPath;
AlarmManager aManager;
Calendar currentTime = Calendar.getInstance();
ArrayAdapter<String> adapter;
File path;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub

super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button addAlarm = (Button)findViewById(R.id.btn1);
Button gesture = (Button)findViewById(R.id.btn2);
Button musicList = (Button)findViewById(R.id.btn3);

adapter= new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
final AlertDialog.Builder b = new AlertDialog.Builder(this);
path = Environment.getExternalStorageDirectory();

final ListView lv= new ListView(this);


// 获取AlarmManager对象
aManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE);
addAlarm.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View source)
{
Calendar currentTime = Calendar.getInstance();
// 创建一个TimePickerDialog实例,并把它显示出来。
new TimePickerDialog(SpecialAlarm.this,
0, // 绑定监听器
new TimePickerDialog.OnTimeSetListener()
{
@Override
public void onTimeSet(TimePicker tp, int hourOfDay,
int minute)
{
// 指定启动AlarmActivity组件
Intent intent = new Intent(SpecialAlarm.this
, RecogniseGesture.class);
// 创建PendingIntent对象
PendingIntent pi = PendingIntent.getActivity(
SpecialAlarm.this, 0, intent, 0);
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
// 根据用户选择时间来设置Calendar对象
c.set(Calendar.HOUR , hourOfDay);
c.set(Calendar.MINUTE , minute);
// 设置AlarmManager将在Calendar对应的时间启动指定组件
aManager.set(AlarmManager.RTC_WAKEUP
, c.getTimeInMillis(), pi);
// 显示闹铃设置成功的提示信息
Toast.makeText(SpecialAlarm.this ,
"闹铃设置成功啦" , 3000).show();
}
}, currentTime.get(Calendar.HOUR_OF_DAY)
, currentTime.get(Calendar.MINUTE), false)
.show();
}
});

gesture.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(SpecialAlarm.this, AddGesture.class);
startActivity(intent);
}
});
jaysu1990 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

adapter.clear();干嘛的?
值得怀疑
[/Quote]是防止重复点击铃声选择按钮时,adapter不断增长。
破折号 2012-04-18
  • 打赏
  • 举报
回复
adapter.clear();干嘛的?
值得怀疑

80,493

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧