如何将int参数传递给CreateThread回调函数?我试试看:
DWORD WINAPI mHandler(LPVOID sId) {
...
arr[(int)sId]
...
}
int id=1;
CreateThread(NULL, NULL, mHandler, (LPVOID)id, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)
但我收到警告:
warning C4311: 'type cast' : pointer truncation from 'LPVOID' to 'int'
warning C4312: 'type cast' : conversion from 'int' to 'LPVOID' of greater size
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,用户有时会遇到错误并且应用程序崩溃。用户向我发送日志:
java.lang.IndexOutOfBoundsException
at android.graphics.Paint.getTextRunAdvances(Paint.java:1774)
at android.graphics.Paint.getTextRunAdvances(Paint.java:1747)
at android.text.MeasuredText.addStyleRun(MeasuredText.java:164)
at android.text.MeasuredText.addStyleRun(MeasuredText.java:204)
at android.text.StaticLayout.generate(StaticLayout.java:281)
at android.text.DynamicLayout.reflow(DynamicLayout.java:332)
at android.text.DynamicLayout.<init>(DynamicLayout.java:176)
at android.widget.TextView.makeSingleLayout(TextView.java:6089)
at android.widget.TextView.makeNewLayout(TextView.java:5987)
at android.widget.TextView.onMeasure(TextView.java:6344)
at android.view.View.measure(View.java:15479)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:617)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:399)
at android.view.View.measure(View.java:15479)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4826)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1396)
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1038)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:576)
at android.view.View.measure(View.java:15479)
at android.widget.ListView.setupChild(ListView.java:1847)
at android.widget.ListView.makeAndAddView(ListView.java:1772)
at android.widget.ListView.fillDown(ListView.java:672)
at android.widget.ListView.fillSpecific(ListView.java:1330)
at android.widget.ListView.layoutChildren(ListView.java:1600)
at android.widget.AbsListView.onLayout(AbsListView.java:2300)
at android.view.View.layout(View.java:14061)
at android.view.ViewGroup.layout(ViewGroup.java:4374)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:14061)
at android.view.ViewGroup.layout(ViewGroup.java:4374)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1655)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1513)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1426)
at android.view.View.layout(View.java:14061)
at android.view.ViewGroup.layout(ViewGroup.java:4374)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:948)
at android.view.View.layout(View.java:14061)
at android.view.ViewGroup.layout(ViewGroup.java:4374)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448) …
Run Code Online (Sandbox Code Playgroud) 我需要在build.gradle中计算整数值,然后在我的Java代码中使用它.我尝试:
的build.gradle:
android {
defaultConfig {
resValue "int", "MY_VAR_NAME", "123"
}
}
Run Code Online (Sandbox Code Playgroud)
值目录中的preprocess.xml:
<integer name="my_int_value">MY_VAR_NAME</integer>
Run Code Online (Sandbox Code Playgroud)
我收到一个错误Cannot resolve symbol MY_VAR_NAME
.
如何使用它?有手册吗?
我正在尝试使用此代码在我的应用程序中使状态栏透明:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().setStatusBarColor(Color.TRANSPARENT);
Run Code Online (Sandbox Code Playgroud)
但它不起作用.状态栏只是更改颜色,变为灰色,不透明.我的错误在哪里?如何使状态栏透明?
我有TextView,它包含带标签的HTML.我需要拦截用户对此链接的点击,获取"href"参数的值,检查它并打开我的活动,如果它是本地链接或打开浏览器,如果它链接到另一个网站.
我试着搜索并找到它,但我无法理解如何在我的情况下使用它.
请帮忙.
我Newtonsoft.Json
在我的项目中使用.我JObject
喜欢这个:
{
"4781":"Name 1",
"1577":"Name 2",
"9973":"Name 3"
}
Run Code Online (Sandbox Code Playgroud)
我成功解析了它JObject.Parse()
.我需要从这个JObject("4781")获得第一个密钥.我怎么得到它?
我有一个RecyclerView。在适配器中,我有一个布尔标志来确定应为所有项目使用哪种布局:
public class MyAdapter extends RecyclerView.Adapter<MyHolder> {
private boolean mIsSecondModeEnabled;
@Override
public MyHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(mIsSecondModeEnabled ?
R.layout.layout_second_mode_item :
R.layout.layout_first_mode_item, parent, false);
return new MyHolder(view);
}
public void setModeEnabled(boolean enabled) {
mIsSecondModeEnabled = enabled;
notifyDataSetChanged();
}
}
Run Code Online (Sandbox Code Playgroud)
该代码无法完全正确地工作。当我打电话给setModeEnabled(true)
一些显示layout_first_mode_item
布局的项目时。
如何实现呢?
java android android-layout android-view android-recyclerview
我正在使用 Kotlin + Retrofit + Rx。我想将请求之一提取到函数中:
fun getDataAsync(onSuccess: Consumer<Data>, onError: Consumer<in Throwable>) {
ApiManager.instance.api
.getData("some", "parameters", "here")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(Consumer {
time = System.currentTimeMillis()
onSuccess.accept(it)
}, onError)
}
fun onButtonClick() {
getDataAsync(this::onSuccess, this::onError)
}
private fun onSuccess(data: Data) {}
private fun onError(throwable: Throwable) {}
Run Code Online (Sandbox Code Playgroud)
我得到一个错误getDataAsync(this::onSuccess, this::onError)
:
Type mismatch: inferred type is KFunction1<@ParameterName Data, Unit> but Consumer<Data> was expected
Type mismatch: inferred type is KFunction1<@ParameterName Throwable, Unit> but Consumer<in Throwable> was expected
Run Code Online (Sandbox Code Playgroud)
如何解决?
Canvas类的所有方法都使用float类型的坐标.但为什么?据我所知,这个坐标意味着要显示的像素数.像素可以分开吗?
我需要在运行时更改菜单项文本。我尝试使用 GetMenuItemInfo() 和 SetMenuItemInfo():
case WM_NOTIFYICONMSG:
switch (lParam) {
case WM_LBUTTONDBLCLK:
someAction();
break;
case WM_RBUTTONDOWN:
{
POINT point;
GetCursorPos(&point);
HMENU hMenu;
HMENU hMenuTrackPopup;
hMenu = LoadMenu(g_hInst, MAKEINTRESOURCE(IDR_MENU));
if (hMenu) {
MENUITEMINFOA menuitem = { sizeof(MENUITEMINFOA) };
GetMenuItemInfoA(hMenu, IDM_EXIT, false, &menuitem);
menuitem.dwTypeData = "New text here";
SetMenuItemInfoA(hMenu, IDM_EXIT, false, &menuitem);
hMenuTrackPopup = GetSubMenu(hMenu, 0);
TrackPopupMenu(hMenuTrackPopup, 0, point.x, point.y, 0, hWnd, NULL);
DestroyMenu(hMenu);
}
}
break;
default:
break;
}
break;
Run Code Online (Sandbox Code Playgroud)
但它不起作用,文本没有改变。我做错了什么?如何实施?
android ×7
c++ ×2
java ×2
android-view ×1
createthread ×1
gradle ×1
hyperlink ×1
int ×1
json.net ×1
kotlin ×1
retrofit ×1
rx-android ×1
textview ×1
visual-c++ ×1
winapi ×1
wpf ×1