所以,这就是我想知道的.如何在Android中以编程方式设置菜单的可见性?这就是我的菜单:
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
public boolean onOptionsItemSelected (MenuItem item){
switch (item.getItemId()){
case R.id.menuregistrar:
break;
case R.id.menusalir:
break;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
但是这个代码不在onCreate上,所以我不知道如何以编程方式设置一个项目可见或不可见(在我的情况下,我希望"menuregistrar"在我注册我的应用程序后永远不可见.
我正在使用Retrofit 2 beta 2的下一个问题:
java.lang.IllegalArgumentException: API interfaces must not extend other interfaces.
Run Code Online (Sandbox Code Playgroud)
这是因为我有一个用于Retrofit API的接口,如下所示:
public interface RetrofitBaseAPI {
@POST
Call<LoginResp> login(@Url String url, @Body LoginReq loginReq);
@POST
Call<String> logout(@Url String url, @Header("Cookie") String sid);
}
Run Code Online (Sandbox Code Playgroud)
例如,其中一个就是这个:
public interface RetrofitWiserLinkAPI extends RetrofitBaseAPI {
@GET("/rs/DeviceIdentification")
Call<DeviceId> getDeviceIdentification(@Header("Cookie") String sid);
}
Run Code Online (Sandbox Code Playgroud)
然后,我有三个其他接口,其中三个从这个RetrofitBaseAPI接口扩展.
当我尝试使用给定的接口调用retrofit.create(Class类)时,我总是收到此错误.
据我所知,唯一的解决方案是创建三个独立的接口.这是真的吗?有谁知道另一个解决方案?
我觉得有点奇怪,我们需要重复代码,但是,也许有一个我不理解的原因.....
提前致谢!
谢谢,
编辑:使用最终的Retrofit 2发布版本的相同问题.我想这是Retrofit的限制....
好吧,那就是我的问题.
当用户按下后面的底部时,我需要删除所有已打开活动的堆栈:
@Override
public void onBackPressed(){
Intent i = new Intent(context, CrisolMainApp.class);
i.putExtra(CrisolMainApp.CERRAR_APP, true);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
}
Run Code Online (Sandbox Code Playgroud)
关键是这与我的大多数手机一起使用,但昨天我尝试使用三星Galaxy Mini(android 2.3.3)并且它无法正常工作!它不会删除一堆活动.
谁知道为什么?
编辑:我正在检查doc,我发现在API 11上添加了"Intent.FLAG_ACTIVITY_CLEAR_TASK"(我的三星Galaxy Mini适用于Android 2.3.3,因此,API 10).......我不知道,但我想这就是问题所在.
任何人都知道如何使API低于11的工作方式相同?
我试图添加这些标志,它也没有工作:
@Override
public void onBackPressed(){
Intent a = new Intent(this, CrisolMainApp.class);
a.putExtra(CrisolMainApp.CERRAR_APP, true);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
a.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(a);
finish();
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
@Override
public void onBackPressed(){
Intent a = new Intent(this, CrisolMainApp.class);
a.putExtra(CrisolMainApp.CERRAR_APP, true);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
a.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(a);
finish();
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
Android从其他应用程序启动应用程序
我有一个问题,它是以下一个:
我有两个应用程序,我想从另一个应用程序启动一个应用程序中的一个......我将举个例子:
第一个应用包:
"es.wul4.android.app1"
第二个应用包:
"es.wul4.android.app2"
我想要的是启动"Identificar"从app1 调用其类的活动
此活动不是主要活动.我试过doind:
Intent intent = getPackageManager().getLaunchIntentForPackage("es.wul4.app2.Identificar");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
但我所做的就是什么,它告诉我应用程序不存在.
如果我尝试这样做:
getPackageManager().getLaunchIntentForPackage("es.wul4.app2");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
它发起了一个活动,但主要的一个........
如何在包"es.wul4.app2.Identificar"中启动此特定活动?
非常感谢.
在我的应用程序中,它出现在Android的lints上的这个警告:
可能的透支:根元素绘制背景@ drawable/main,主题也绘制背景(推断的主题是@android:style/Theme)
我想知道如何纠正这个错误,因为在检查和检查互联网后,我发现它正在降低应用程序速度导致它重新加载两倍的背景来放置此源.
这是我的layout.xml的源代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/main"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="120dp"
android:layout_centerHorizontal="true"
android:layout_marginLeft="20dp"
android:text="@string/alta1"
android:textColor="#000"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_marginTop="20dp"
android:layout_centerHorizontal="true"
android:text="@string/alta2"
android:layout_marginLeft="20dp"
android:textColor="#000"
android:textAppearance="?android:attr/textAppearanceSmall" />
<Button
android:id="@+id/continuaralta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/textView2"
android:layout_marginRight="50dp"
android:layout_marginTop="36dp"
android:textStyle="bold"
android:background="@drawable/boton"
android:text="@string/continuar" />
<Button
android:id="@+id/saliralta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/continuaralta"
android:layout_alignBottom="@+id/continuaralta"
android:layout_marginRight="15dp"
android:layout_toLeftOf="@+id/continuaralta"
android:background="@drawable/boton"
android:textStyle="bold"
android:text="@string/salir" />
Run Code Online (Sandbox Code Playgroud)
我正在使用内部带有AppBarLayout的CoordinatorLayout和一个元素来尝试在滚动RecyclerView时能够滚动。在此之前,一切都按预期进行,当我以编程方式尝试滚动RecyclerView的最后位置时,问题就来了。该recyclerViews不滚动,但是位置我告诉滚动到是不可见的(事实上,如果我滚动手动,它是可见的,一旦里面的其他元素AppBarLayout屏幕已经完全滚出)。 这是我的代码:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:elevation="0dp">
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/chart"
android:layout_width="match_parent"
android:layout_height="280dp"
android:layout_below="@+id/toolbar_conso"
android:background="@color/background_dark_grey"
app:layout_scrollFlags="scroll|enterAlways" />
</android.support.design.widget.AppBarLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:id="@+id/linear_total_conso"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal">
<TextView
android:id="@+id/current_consumption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="@color/graph_consumption_color"
android:textSize="30sp" />
<TextView
android:id="@+id/consumption_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:text=""
android:textAppearance="@style/TextAppearance.Smartlink.Large"
android:textColor="@color/graph_consumption_color" />
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
以及RecyclerView的代码:
recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(context));
recyclerView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
该适配器是一个简单的文本适配器........
当我尝试滚动是从Service接收到事件后,因此有一个BroadcastReceiver可以接收事件并管理结果:
@Override …Run Code Online (Sandbox Code Playgroud)