我有一个包含在相对布局中的线性布局.它在XML文件中设置为另一个线性布局的右侧(这很好).在某些情况下,我想在活动的onCreate期间更改布局的相对位置,因此我需要修改"右侧"参数以与另一个布局相关联.我试过这个:
RelativeLayout.LayoutParams layoutParams;
layoutParams = (RelativeLayout.LayoutParams) linearLayoutToMove
.getLayoutParams();
layoutParams.addRule(RelativeLayout.RIGHT_OF,
R.id.new_ref_LinearLayout);
Run Code Online (Sandbox Code Playgroud)
但它不起作用:o(
有线索吗?
我使用AsyncTask来执行一个很长的过程.
我不想将我的长进程代码直接放在doInBackground中.相反,我的长进程代码位于另一个类中,我在doInBackground中调用.
我希望能够从longProcess函数中调用publishProgress.在C++中,我将一个sendProgress的回调指针传递给我的longProcess函数.
我如何在java中这样做?
编辑:
我的长程序代码:
public class MyLongProcessClass
{
public static void mylongProcess(File filetoRead)
{
// some code...
// here I would like to call publishProgress
// some code...
}
}
Run Code Online (Sandbox Code Playgroud)
我的AsyncTask代码:
private class ReadFileTask extends AsyncTask<File, Void, Boolean>
{
ProgressDialog taskProgress;
@Override
protected Boolean doInBackground(File... configFile)
{
MyLongProcessClass.mylongProcess(configFile[0]);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑#2长处理方法也可以是非静态的,并像这样调用:
MyLongProcessClass fileReader = new MyLongProcessClass();
fileReader.mylongProcess(configFile[0]);
Run Code Online (Sandbox Code Playgroud)
但这并没有改变我的问题.
为什么我在此函数中的i ++上收到死代码警告?
InputFilter hexInputFilter()
{
return new InputFilter()
{
@Override
public CharSequence filter(CharSequence source, int start,
int end, Spanned dest, int dstart, int dend)
{
for (int i = start; i < end; i++)
{
if ((source.charAt(i) >= '0')
&& (source.charAt(i) <= '9'))
{
return null;
}
if ((Character.toUpperCase(source.charAt(i)) >= 'A')
&& (Character.toUpperCase(source.charAt(i)) <= 'F'))
{
return null;
}
return "";
}
return null;
}
};
}
Run Code Online (Sandbox Code Playgroud) 我想从多个long类型中获取至少32位,因此我对位数为0xFFFFFFFF的数字执行按位操作"&",但结果不正确,它仍然包含其他位.
例如:
long a = 0x1234567890ab;
long b = (a & 0xffffffff);
Run Code Online (Sandbox Code Playgroud)
我希望b的值为0x567890ab
但在实践中,它仍然是0x1234567890ab
protected MediaPlayer _mediaPlayer;
protected void playFromResource(int resId)
{
if (_mediaPlayer != null)
{
_mediaPlayer.stop();
_mediaPlayer.release();
}
_mediaPlayer = MediaPlayer.create(this, resId);
_mediaPlayer.start();
}
Run Code Online (Sandbox Code Playgroud)
此代码用于在模拟器和设备上正常工作.从一段时间以来(我认为自从我更新到ADT r10以来)它只适用于设备.在仿真器上不再有声音,应用程序在通过时会冻结on _mediaPlayer.release()(第二次调用该函数).我能够从通过更换崩溃保持应用程序stop(),并release()通过reset(),但它并没有解决的主要问题:有在模拟器上没有声音.
日志文件在调用之后显示了一堆这些(仅在模拟器上) start()
03-09 19:14:30.716:WARN/AudioTrack(34):obtainBuffer超时(CPU是否挂起?)0x1afb8 user = 00001e00,server = 00000600
任何线索????
我正在使用Debug.startMethodTracing和Debug.stopMethodTracing来优化一段需要大约30秒才能执行的代码,但是当我用跟踪视图打开跟踪文件时,它只显示了大约6.5秒的跟踪数据.
有线索吗?
我setOnItemSelectedListener在旋转器上使用.如果我更改了选择,则会触发侦听器,但如果我选择了已选择的相同项目则不会触发.即使用户选择了已经选择的相同项目,我也需要被nofified.我一直在努力使用,setOnItemClickListener但它不受支持Spinner.
任何提示?
TIA
我想在用户触摸(或点击)TextView时做一些事情,但我似乎无法使其工作.
我只是在布局中放置一个TextView,我试图设置一个onclick监听器.
touchTV = (TextView) findViewById(R.id.touchTV);
touchTV.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Toast.makeText(getApplicationContext(), "Text Touch",
Toast.LENGTH_SHORT);
}
});
Run Code Online (Sandbox Code Playgroud)
但是当我点击TextView时没有任何反应.
我尝试了相同的东西,但使用onTouch监听器,但我得到相同(缺乏)的结果.
我是Delphi和Firemonkey的新手.
让我说我动态地(在运行时)在我的表单上创建一个新按钮,我想抓住它的OnCLick事件.
如何将我的控制绑定到onclick程序?
谢谢