小编J. *_*aes的帖子

在指定的索引处将对象添加到ArrayList

我认为这是一个相当简单的问题,但我无法弄清楚如何正确地做到这一点.

我有一个空的arraylist:

ArrayList<object> list = new ArrayList<object>();
Run Code Online (Sandbox Code Playgroud)

我有一些我想要添加的对象,每个对象都必须处于某个位置.然而,必须以各种可能的顺序添加它们.当我尝试这个,它不起作用,我得到一个IndexOutOfBoundsException:

list.add(1, object1)
list.add(3, object3)
list.add(2, object2)
Run Code Online (Sandbox Code Playgroud)

我曾尝试是填充ArrayListnull,然后做以上.它有效,但我认为这是一个可怕的解决方案.还有另一种方法吗?

java android arraylist

133
推荐指数
6
解决办法
33万
查看次数

从按下的按钮获取文本

如何从按下的按钮获取文本?(机器人)

我可以从一个按钮获取文本:

String buttonText = button.getText();
Run Code Online (Sandbox Code Playgroud)

我可以通过按下按钮获取id:

int buttinID = view.getId();
Run Code Online (Sandbox Code Playgroud)

我目前无法找到的是如何在按下的按钮上获取文本.

public void onClick(View view) {
  // Get the text on the pressed button
}
Run Code Online (Sandbox Code Playgroud)

android

61
推荐指数
4
解决办法
11万
查看次数

刷新片段内的视图

我搜索了很多看起来像这个问题的问题,但是没有找到我的答案.

我有一个活动,通过操作栏可以访问3个选项卡.我通过添加3个片段来实现这一点,这些片段扩展了我扩展视图类的自定义视图.

在数据库更改的那一刻,我尝试通过调用invalidate()/ postinvalidate()刷新我的选项卡中的视图,但这不起作用.调用片段的onCreateView就像我考虑的其他选项一样.

然而,当我转到另一个选项卡然后返回时,已经进行了更改,并且我的视图会按原样更新.

如何模拟更改为另一个选项卡时发生的相同事情?会发生什么 我试着看看Fragment生命周期(尝试调用onCreateView())来解决它,但它只是不想刷新/重绘它应该.

正确加载数据,因为当我更改为另一个选项卡时数据会更改.

我删除了一些代码,因为它不再相关.我实现了Cursorloaders而不是我自己的Observer模式来通知更改.这是我现在的主要活动.

问题是,如果我想重绘这些片段中的视图,我现在应该怎么做.如果我应用fragmentObject.getView().invalidate()它不起作用.我遇到了和以前一样的问题,但现在我的Observer通知加载器正确实现了数据库中的更改.

public class ArchitectureActivity extends Activity implements LoaderManager.LoaderCallbacks<Cursor> {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.main);

    ActionBar actionbar = getActionBar();
    actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    ActionBar.Tab EditTab = actionbar.newTab().setText("Edit");
    ActionBar.Tab VisualizeTab = actionbar.newTab().setText("Visualize");
    ActionBar.Tab AnalyseTab = actionbar.newTab().setText("Analyse");

    Fragment editFragment = new EditFragment();
    Fragment visualizeFragment = new VisualizeFragment();
    Fragment analyseFragment = new AnalyseFragment();

    EditTab.setTabListener(new MyTabsListener(editFragment));
    VisualizeTab.setTabListener(new MyTabsListener(visualizeFragment));
    AnalyseTab.setTabListener(new MyTabsListener(analyseFragment));

    actionbar.addTab(EditTab);
    actionbar.addTab(VisualizeTab);
    actionbar.addTab(AnalyseTab);

    ArchitectureApplication architectureApplication = (ArchitectureApplication)getApplicationContext();
    architectureApplication.initialize();

    getLoaderManager().initLoader(0, null, this);
    getLoaderManager().initLoader(1, null, this);
}

public …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments android-view android-loadermanager

19
推荐指数
2
解决办法
4万
查看次数