这是情况:
问题:据我搜索,无法检索前台的当前活动.
额外信息:这需要能够在多个活动中处理.因此,它可以在Activity-A或B或C中弹出.
所以我正在解析一定数量的字节.但是,前两个字节代表一些数字,然后下一个字节代表一个只有一个字节的数字,但接下来的四个字节可能代表一个很大的数字.除了我的方式之外,还有更好的解析数据的方法吗?
switch (i) {
//Status
case 2:
temp[3] = bytes[i];
break;
case 3:
temp[2] = bytes[i];
ret.put("Status", byteArrayToInt(temp).toString());
break;
//Voltage
case 4:
temp[3] = bytes[i];
break;
case 5:
temp[2] = bytes[i];
ret.put("Voltage", byteArrayToInt(temp).toString());
break;
//Lowest Device Signal
case 6:
temp[3] = bytes[i];
break;
case 7:
temp[2] = bytes[i];
ret.put("Lowest Device Signal", byteArrayToInt(temp).toString());
clearBytes(temp);
break;
Run Code Online (Sandbox Code Playgroud)
}
我循环遍历字节数组,我有一个开关,知道哪个字节到哪个位置,例如我知道第二个和第三个字节转到状态代码.所以我把它们组合成一个int.temp字节数组是byte [] temp = new byte [4].有更好的方法吗?
我已经为众多架构生成了 *.so,并且在我的 gradle 中定义了 ProductFlavors:
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
armv7a {
ndk {
abiFilter "armeabi-v7a"
}
}
fat
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,唯一可以工作的是armv7a-debug,如果我选择任何其他一个,将会导致以下错误:
2017-01-02 10:43:29,393 [3729690] ERROR - riant.view.BuildVariantUpdater - Unable to select build variant 'fatDebug':
Cannot find NativeAndroidProject for module 'app'.
com.intellij.openapi.diagnostic.Logger$EmptyThrowable
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:129)
at com.android.tools.idea.gradle.variant.view.BuildVariantUpdater.logAndShowUpdateFailure(BuildVariantUpdater.java:264)
at com.android.tools.idea.gradle.variant.view.BuildVariantUpdater.getNativeAndroidModel(BuildVariantUpdater.java:255)
at com.android.tools.idea.gradle.variant.view.BuildVariantUpdater.doUpdate(BuildVariantUpdater.java:105)
at com.android.tools.idea.gradle.variant.view.BuildVariantUpdater.lambda$updateSelectedVariant$0(BuildVariantUpdater.java:70)
at com.intellij.openapi.roots.impl.ProjectRootManagerImpl.mergeRootsChangesDuring(ProjectRootManagerImpl.java:314)
at com.android.tools.idea.gradle.util.Projects.lambda$null$5(Projects.java:236)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:898)
at com.android.tools.idea.gradle.util.Projects.lambda$executeProjectChanges$6(Projects.java:234)
at com.intellij.util.ui.UIUtil.invokeAndWaitIfNeeded(UIUtil.java:2453)
at com.android.tools.idea.gradle.util.Projects.executeProjectChanges(Projects.java:234)
at com.android.tools.idea.gradle.variant.view.BuildVariantUpdater.updateSelectedVariant(BuildVariantUpdater.java:69)
at com.android.tools.idea.gradle.variant.view.BuildVariantView.buildVariantSelected(BuildVariantView.java:520)
at com.android.tools.idea.gradle.variant.view.BuildVariantView$BuildVariantTable.lambda$addBuildVariants$0(BuildVariantView.java:486)
at javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1223)
at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1280)
at javax.swing.JComboBox.contentsChanged(JComboBox.java:1330) …Run Code Online (Sandbox Code Playgroud) 我打开我的第一个活动,它只是第二个活动的加载器,在第二个活动上有按钮,其中一个打开第三个活动.如果我从第三个活动回击而不是转到第二个活动,则只需关闭应用程序.有任何解决这个问题的方法吗?
这是一些代码片段:
public void onSegmentStatusButtonClick(View view) {
Log.d(TAG, "Segment status button clicked.");
Intent intent = new Intent(this, SegmentStatusActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
startActivity(intent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_segment_status);
TextView txtView = (TextView) this
.findViewById(R.id.segment_status_msg);
txtView.setText(new String(getIntent().getByteArrayExtra("data")));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.segment_status, menu);
return true;
}
@Override
public void onStop() {
super.onStop();
Log.d(TAG, "Executing onStop().");
finish();
}
@Override
public void onPause() { …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用TextViews制作ListView,我希望能够点击每个textview,并根据它的位置拉出片段.但是,似乎甚至没有调用itemOnClickListener.
mDrawerList = (ListView) findViewById(R.id.devices_drawer);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_list_item, drawerInfo));
mDrawerList.setItemsCanFocus(false);
mDrawerList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
final int pos, long id) {
Log.d(TAG, "CLICKED " + pos);
selectDevice(pos);
}
});
Run Code Online (Sandbox Code Playgroud)
这是列表项的xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/deviceText"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
列表视图xml文件:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:id="@+id/devices_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="#111"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp" />
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)