java - 将 View 存储在缓冲区中并稍后显示

标签 java android

我想将 View 放入缓冲区之类的东西中,然后稍后显示它们。 像这样的东西:

public void addTextView(int belowId, int id,String text){
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT);
    lp.addRule(RelativeLayout.BELOW, belowId);
    lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);

    TextView tv = new TextView(this);
    tv.setId(id);

    tv.setText(text+"\n");

    ///i mean something like this:
    buffer = addview(tv,lp)

}

稍后显示

public void showview(bufferview b){
        RelativeLayout rSub= (RelativeLayout) findViewById(R.id.rSub);
        rsub.addview(b);
}

最佳答案

使用 map 怎么样?

http://docs.oracle.com/javase/6/docs/api/java/util/Map.html

Map<Integer,TextView> textViewMap = new HashMap<Integer,TextView>();

public void addTextView(int belowId, int id,String text){
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.WRAP_CONTENT,
        RelativeLayout.LayoutParams.WRAP_CONTENT);
    lp.addRule(RelativeLayout.BELOW, belowId);
    lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);

    TextView tv = new TextView(this);
    tv.setLayoutParams(lp);
    tv.setId(id);

    tv.setText(text+"\n");

    textViewMap.put(tv.getId(), tv);
}

public void showview(int id){
    RelativeLayout rSub= (RelativeLayout) findViewById(R.id.rSub);
    rsub.addview(textViewMap.get(id));
}

关于java - 将 View 存储在缓冲区中并稍后显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17876672/

相关文章:

java - 阀门配置在 tomcat 中不起作用?

java - 从 url java 打印 pdf

android - GCM客户端未收到推送通知

android - Google Analytics - Android 应用跳出率

android - 如何检查是否启用了定位服务?

java.lang.RuntimeException : Cannot make calls to a recycled instance!类型数组navadapter

java - Java ZoneId 无法识别美国的哪些短时区 ID?

java - 使用循环和整数

java - Jersey (jsr 311)和自定义 ViewProcessor

Android ScrollView 弹出窗口不工作