0

我创建了一个顶部有两个按钮的活动。一键显示“短信记录”,二键显示“通话记录”。

单击“短信日志”按钮时,我正在动态创建文本视图和线性布局以显示短信日志。

单击“通话记录”时,我正在动态创建另一个文本视图和线性布局以显示通话记录。

但问题是,一旦我们点击“sms log”按钮,然后我们点击“call log”按钮,之前创建的线性布局不会被删除,并且两者(以前的布局和当前布局)都会同时显示。

但是我希望在单击第二个按钮时应该删除以前的布局。

我应该使用哪个功能来删除以前的视图组或布局。告诉我你是否需要阅读我的课程文件。

编辑:

这是我的活动代码,

public class General extends Activity
{
    String phone, message;
    TextView Logs;
    View layout, callLayout;
    TextView data, callData, line, callLine;
    Button smsLog, callLog;
    LinearLayout ll, callll;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.general_main);
        Logs = (TextView)findViewById(R.id.Logs);
        layout = findViewById(R.id.layout);
        callLayout = findViewById(R.id.layout);
        smsLog = (Button)findViewById(R.id.smsLogs);
        callLog = (Button)findViewById(R.id.callLogs);
        smsLog.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) 
            {
                callLayout.setVisibility(View.GONE);
                       ll = new LinearLayout(getApplicationContext());
                       ll.setOrientation(LinearLayout.VERTICAL);
                       data = new TextView(getApplicationContext());
                        data.setText("First Line");
                        data.setTextColor(Color.YELLOW);
                        line = new TextView(getApplicationContext());
                        line.setText("Second Line");
                        ((ViewGroup) ll).addView(data);
                        ((ViewGroup) layout).addView(line);
                        ((ViewGroup) layout).addView(ll);
            }
        });


        callLog.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v) 
            {
                layout.setVisibility(View.GONE);
                        callll = new LinearLayout(getApplicationContext());
                        callll.setOrientation(LinearLayout.VERTICAL);
                         callData = new TextView(getApplicationContext());
                            callLine = new TextView(getApplicationContext());
                        callData.setText("Third Line");
                        callLine.setText("Fourth Line");
                        ((ViewGroup) callll).addView(callData);
                        ((ViewGroup) callLayout).addView(callLine);
                        ((ViewGroup) callLayout).addView(callll);
            }
        });
    }
}

我已经删除了额外的代码并使其易于理解。

4

2 回答 2

1

您可以使用 FrameLayout 来解决您的问题。
但我建议你使用 tabview。
是演示如何开发选项卡式应用程序的链接。
祝你好运

于 2012-10-24T12:28:31.463 回答
0

你可以实现一个TabView.

但是,您当前的设置只是将一个视图组的可见性更改为,将另一个视图组更改GONEVISIBLE.

GONE将使视图不可见,并且不再占用任何空间。

根据添加到问题的代码进行编辑

layout和您callLayout都使用相同的XML视图。在你的中实现 2 个相同的视图,xml并保持一个可见,一个消失。这样,当您设置layout或对它们的callLayout可见性时,GONE它们是 2 个不同的不一样的。所以你onClick()会有这样的东西:

对于smsLog

layout.setVisibility(View.GONE);
callLayout.setVisibility(View.VISIBLE);

对于callLog

callLayout.setVisibility(View.GONE);
callLayout.setVisibility(View.VISIBLE);
于 2012-10-24T12:24:14.030 回答