小编cav*_*ega的帖子

在主/细节片段中使用ActionBar Up导航

我有一个主/详细布局的应用程序(1个活动,1个ListView片段和1个细节片段).当用户单击ListView中的项目时,片段事务会在右窗格中实例化一个详细信息片段,其中包含与该项目对应的信息.当显示细节片段时,我隐藏了初始操作栏按钮/项目并显示3个新的AB项目(完成/删除/取消).用户可以通过按后退按钮或按下3 AB项中的一个来清理右窗格并返回初始UI状态.

我遇到的问题是,当用户选择应用程序的主页图标(即"向上导航")时,活动会重新加载(即表示活动正在启动的动画可以被视为操作栏和UI已被重绘).只有在按下应用程序主页图标时才会出现此问题.如果用户按下后退按钮或取消/完成/删除操作栏按钮,则只需从右窗格中删除片段,UI将返回初始状态而不会"重新加载".

活动的XML布局如下(在LinearLayout内部;美化隐藏该行):

<fragment class="*.*.*.ListFragment"
        android:id="@+id/titles" android:layout_weight="1"
        android:layout_width="0px"
        android:layout_height="match_parent" />

<FrameLayout android:id="@+id/details" android:layout_weight="2"
        android:layout_width="0px"
        android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)

DetailsFragement在其onCreate方法中具有actionBar.setDisplayHomeAsUpEnabled语句:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);


    ActionBar actionBar = getSherlockActivity().getSupportActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);

}
Run Code Online (Sandbox Code Playgroud)

对于ListView片段和Detail片段,onCreateOptionsMenu()和onOptionsItemSelected()方法都在片段中实现.在Details片段的代码下面:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.edit_menu, menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    // some variable statements...

    switch (item.getItemId()) {
        case android.R.id.home:
            //Toast.makeText(getSherlockActivity(), "Tapped home", Toast.LENGTH_SHORT).show();
            onHomeSelectedListener.onHomeSelected();
            return true;

        case R.id.menu_edit_item_done:
            editedTask.setTitle(editedTaskTitle);
            onTaskEditedListener.onTaskEdited(editedTask, UPDATE_TASK, true);
            return true;

        default:
            return super.onOptionsItemSelected(item);

    }
}
Run Code Online (Sandbox Code Playgroud)

在主机活动中,我实现了onHomeSelectedListner来处理app …

android android-actionbar

17
推荐指数
1
解决办法
3万
查看次数

改造:如何在请求中指定逗号分隔的参数?

我正在尝试重构我的代码以使用Retrofit(来自Volley)进行一些Foursquare API调用,但是没有找到一个正确的示例来说明如何指定具有由逗号分隔的2个值的查询参数.

我的基本网址如下:

public static final String VENUES_BASE_URL = "https://api.foursquare.com/v2/venues";
Run Code Online (Sandbox Code Playgroud)

我的其余网址是这样的:

"?ll=40.7,50.2&limit=50&radius=25000&v=20140909&venuePhotos=1&oauth_token=xxyyxx";
Run Code Online (Sandbox Code Playgroud)

我的界面的第一个实现:

public interface Fourquare {
    @GET("/explore?ll={p1},{p2}&limit=50&radius=25000&v=20140905&venuePhotos=1&oauth_token=xxyyxx")
    Response getVenues(@Path("p1") String param1,
                   @Path("p2") String param2);

}
Run Code Online (Sandbox Code Playgroud)

然后提出这样的请求:

RestAdapter restAdapter = new RestAdapter.Builder()
            .setEndpoint(ConfigConstants.VENUES_BASE_URL)
            .build();

    Fourquare fourquare = restAdapter.create(Fourquare.class);
    Response myResponse = fourquare.getVenues("50", "75");
Run Code Online (Sandbox Code Playgroud)

但是,上面给了我以下错误:

retrofit.RetrofitError: Fourquare.getVenues: URL query string "ll={p1},{p2}&limit=50&radius=25000&v=20140905&venuePhotos=1&oauth_token=xxyyxx" must not have replace block.
Run Code Online (Sandbox Code Playgroud)

第二个实现(在查看一些使用Query参数的SO响应之后.注意:一旦我找到了ll?参数调用,我将把令牌作为参数):

@GET("/explore&limit=50&radius=25000&v=20140905&venuePhotos=1&oauth_token=xxyyxx")
void getVenues(@Query("ll") String ll,
                      Callback<String> cb);
Run Code Online (Sandbox Code Playgroud)

通过这样的实际调用:

fourquare.getVenues("50,75", new Callback<String>() {
        @Override
        public void success(String s, Response response) {
            Log.d(TAG, "Successful run!"); …
Run Code Online (Sandbox Code Playgroud)

android foursquare retrofit

10
推荐指数
2
解决办法
8487
查看次数

如何为自定义listView项的单独部分设置onClickListener?[Android]产品

我为我的Android应用程序制作了一个自定义listView,我在为项目的不同部分创建单独的onClickListener时遇到问题.我的项目有图片和文字.我想要的是根据点击的那些开始不同的活动.

onClick()方法应该启动一个活动,这使我无法在我的DataBinder类的getView()方法中定义.(DataBinder使用自定义布局填充我的listView)

有帮助吗?

谢谢!

android listview onclicklistener

5
推荐指数
1
解决办法
7956
查看次数