如何在不使用活动的情况下创建不同的页面

时间:2015-12-01 17:32:01

标签: java android android-fragments android-intent android-activity

我正在尝试创建一个包含不同主题和问题页面的应用。我创造了大约两个活动,即将创造更多活动,比如40个活动。如何在不创建这么多活动的情况下做到这一点?

这是我的MainActivity.java代码

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private ListView mListView;
    private Context context;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Declare the text view id
        mListView = (ListView) findViewById(R.id.myList);

        //Adding text to the array list
        String booksArray[] = new String[]{"General Questions", "Mathematics",
                "Physics",
                "Chemistry",
                "English"};

        //Initialize the array list in the adapter
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout
                .simple_list_item_1, booksArray);
        mListView.setAdapter(adapter);

        //Set the listener for the list view item
        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position,
                                    long id) {
                //if the position of item clicked is 1, it should open
                //another activity
                if(position == 1 ){
                    conditionOfIf();
                }

                else{
                    //A short message that notify user for an error
                    Toast.makeText(getApplicationContext(), "Please click on the first objcet",
                            Toast.LENGTH_LONG)
                    .show();}
            }
        });
    }

    //The real code that open another activity called Topics
    private void conditionOfIf(){
        Intent intent = new Intent(this, Topics.class);
        startActivity(intent);
    }
}

2 个答案:

答案 0 :(得分:0)

使用片段。 对于学习片段,请访问谷歌或YouTube视频。 有许多在线资源可供使用。

答案 1 :(得分:0)

Fragments是你的答案。你可以创建40个片段,并且只有一个活动来管理这些片段。 关于片段的最好的事情是你可以使用相同的UI用于多种目的,即重用能力,因为你有大量的布局可能会派上用场。

我认为这将是一个伟大的Fragment tutorial开始,它很容易理解,但足够强大,可以教你基本面。