Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓列表视图。从activity1转换到activity2中的片段_Java_Android_Listview_Android Activity_Android Fragments - Fatal编程技术网

Java 安卓列表视图。从activity1转换到activity2中的片段

Java 安卓列表视图。从activity1转换到activity2中的片段,java,android,listview,android-activity,android-fragments,Java,Android,Listview,Android Activity,Android Fragments,有一个活动,它有一个列表(listview)。我需要调整click处理程序,以便在单击第一个项目时调用显示第一个片段的Activity2,如果单击第二个元素,则调用显示第二个片段的Activity2 我的代码活动1: public class Class extends Activity { ArrayAdapter<String> adapter = null; View emptyView; public void onCreate(Bundle savedInstanceS

有一个活动,它有一个列表(listview)。我需要调整click处理程序,以便在单击第一个项目时调用显示第一个片段的Activity2,如果单击第二个元素,则调用显示第二个片段的Activity2

我的代码活动1:

public class Class extends Activity {
ArrayAdapter<String> adapter = null;
View emptyView;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity);
    getActionBar().hide();
    ListView listView = (ListView) findViewById(R.id.ListView);
    listView.setEmptyView(
            emptyView = getLayoutInflater().inflate(R.layout.empty_view, null));
    ((ViewGroup)listView.getParent()).addView(emptyView);
    fillListView();
    listView.setAdapter(adapter);
    listView.setTextFilterEnabled(true);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            // When clicked, show a toast with the TextView text
           if (((TextView) view).getText() == "Go1"){

           } else
           if (((TextView) view).getText() == "Go2"){

             /*  FragmentManager fragmentManager1 = getFragmentManager();
               FragmentTransaction fragmentTransaction1 = fragmentManager1
                       .beginTransaction();
               Intent Fragment1 = new Intent(Class.this, MainActivity.class);
               startActivity(Fragment1);
               Fr myFragment1 = new Fr();
               myFragment1.setRetainInstance(true);
               fragmentTransaction1.replace(R.id.container, myFragment1);
               fragmentTransaction1.commit();
               SearchActivity.this.finish();*/
           }
            if (((TextView) view).getText() == "Go3"){

            }
        }
    });

    EditText editFilter = (EditText) findViewById(R.id.edit_search);
    editFilter.addTextChangedListener(new TextWatcher() {

        public void afterTextChanged(Editable s) {
        }

        public void beforeTextChanged(CharSequence s, int start, int count,
                                      int after) {
        }

        public void onTextChanged(CharSequence s, int start, int before,
                                  int count) {
            adapter.getFilter().filter(s.toString());
        }
    });

}

private void fillListView() {
    List<String> catList = new ArrayList<String>();
    catList.add("Go1");
    catList.add("Go2");
    catList.add("Go3");

    adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, catList);
}
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {

            if (((TextView) view).getText() == "Go1"){
                Intent in = new Intent(getApplicationContext(),
                        MainActivity.class);
                in.putExtra("key", 0);
                startActivity(in);

            }
            if (((TextView) view).getText() == "Go2"){
                Intent in = new Intent(getApplicationContext(),
                        MainActivity.class);
                in.putExtra("key", 1);
                startActivity(in);

            }
            if (((TextView) view).getText() == "Go3"){
                Toast.makeText(getBaseContext(), "Go3", Toast.LENGTH_SHORT).show();
            }

        }
    });
公共类扩展活动{
ArrayAdapter适配器=空;
空视图;
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
getActionBar().hide();
ListView ListView=(ListView)findViewById(R.id.ListView);
listView.setEmptyView(
emptyView=GetLayoutFlater().充气(R.layout.empty_视图,null));
((ViewGroup)listView.getParent()).addView(emptyView);
fillListView();
setAdapter(适配器);
setTextFilterEnabled(true);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//单击后,显示带有文本视图文本的祝酒词
if(((TextView)视图).getText()=“Go1”){
}否则
if(((文本视图)视图).getText()=“Go2”){
/*FragmentManager FragmentManager 1=getFragmentManager();
FragmentTransaction fragmentTransaction1=fragmentManager1
.beginTransaction();
意向碎片1=新意向(Class.this,MainActivity.Class);
星触觉(碎片1);
Fr myFragment1=新的Fr();
myFragment1.setRetainInstance(真);
fragmentTransaction1.替换(R.id.container,myFragment1);
fragmentTransaction1.commit();
SearchActivity.this.finish()*/
}
if(((文本视图)视图).getText()=“Go3”){
}
}
});
EditText editFilter=(EditText)findViewById(R.id.edit\u search);
editFilter.addTextChangedListener(新的TextWatcher(){
公共无效后文本已更改(可编辑){
}
更改前的公共无效(字符序列、整数开始、整数计数、,
整数后){
}
public void onTextChanged(字符序列,int start,int before,
整数计数){
adapter.getFilter().filter(s.toString());
}
});
}
私有void fillListView(){
List catList=new ArrayList();
catList.添加(“Go1”);
catList.添加(“Go2”);
catList.添加(“Go3”);
适配器=新阵列适配器(此,
android.R.layout.simple_list_item_1,catList);
}
我的代码活动2:

private class DrawerItemClickListener implements ListView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int i, long id) {
    selectItem(i);

    }
}


private void selectItem(int i) {
    String str = toString().trim();
    switch(i){

        case 1:

            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager
                    .beginTransaction();
            Quadrat myFragment = new Quadrat();
            myFragment.setRetainInstance(true);
            fragmentTransaction.replace(R.id.container, myFragment);
            fragmentTransaction.commit();

            break;
        case 2:

            FragmentManager fragmentManager1 = getFragmentManager();
            FragmentTransaction fragmentTransaction1 = fragmentManager1
                    .beginTransaction();
            Qoob myFragment1 = new Qoob();
            myFragment1.setRetainInstance(true);
            fragmentTransaction1.replace(R.id.container, myFragment1);
            fragmentTransaction1.commit();

            break;

        default:;
    }
}
if (getIntent().getIntExtra("key", 0) == 0){
        FragmentManager fragmentManager1 = getFragmentManager();
        FragmentTransaction fragmentTransaction1 = fragmentManager1
                .beginTransaction();
        Quadrat myFragment1 = new Quadrat();
        myFragment1.setRetainInstance(true);
        fragmentTransaction1.replace(R.id.container, myFragment1);
        fragmentTransaction1.commit();
    }
私有类DrawerItemClickListener实现ListView.OnItemClickListener{
@凌驾
public void onItemClick(AdapterView父项、视图、int i、long id){
选择项目(i);
}
}
私有void selectItem(int i){
字符串str=toString().trim();
开关(一){
案例1:
FragmentManager FragmentManager=getFragmentManager();
FragmentTransaction FragmentTransaction=fragmentManager
.beginTransaction();
样方myFragment=新样方();
myFragment.setRetainInstance(true);
fragmentTransaction.replace(R.id.container,myFragment);
fragmentTransaction.commit();
打破
案例2:
FragmentManager FragmentManager 1=getFragmentManager();
FragmentTransaction fragmentTransaction1=fragmentManager1
.beginTransaction();
Qoob myFragment1=新Qoob();
myFragment1.setRetainInstance(真);
fragmentTransaction1.替换(R.id.container,myFragment1);
fragmentTransaction1.commit();
打破
违约:;
}
}
您可以指示在启动时使用哪个片段的活动

       int fragmentnr = position;

       Intent intent = new Intent(Class.this, MainActivity.class);
       intent.putExtra("fagmentnr", fragmentnr ); 
       startActivity(intent);
然后在创建MainActivity(MainActivity?不是Activity2?)时,您必须首先确定fragmentnr

这些带有键的puExtra()的工作原理与为函数使用参数的工作原理相同。

我将其留在这里 活动1:

public class Class extends Activity {
ArrayAdapter<String> adapter = null;
View emptyView;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity);
    getActionBar().hide();
    ListView listView = (ListView) findViewById(R.id.ListView);
    listView.setEmptyView(
            emptyView = getLayoutInflater().inflate(R.layout.empty_view, null));
    ((ViewGroup)listView.getParent()).addView(emptyView);
    fillListView();
    listView.setAdapter(adapter);
    listView.setTextFilterEnabled(true);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            // When clicked, show a toast with the TextView text
           if (((TextView) view).getText() == "Go1"){

           } else
           if (((TextView) view).getText() == "Go2"){

             /*  FragmentManager fragmentManager1 = getFragmentManager();
               FragmentTransaction fragmentTransaction1 = fragmentManager1
                       .beginTransaction();
               Intent Fragment1 = new Intent(Class.this, MainActivity.class);
               startActivity(Fragment1);
               Fr myFragment1 = new Fr();
               myFragment1.setRetainInstance(true);
               fragmentTransaction1.replace(R.id.container, myFragment1);
               fragmentTransaction1.commit();
               SearchActivity.this.finish();*/
           }
            if (((TextView) view).getText() == "Go3"){

            }
        }
    });

    EditText editFilter = (EditText) findViewById(R.id.edit_search);
    editFilter.addTextChangedListener(new TextWatcher() {

        public void afterTextChanged(Editable s) {
        }

        public void beforeTextChanged(CharSequence s, int start, int count,
                                      int after) {
        }

        public void onTextChanged(CharSequence s, int start, int before,
                                  int count) {
            adapter.getFilter().filter(s.toString());
        }
    });

}

private void fillListView() {
    List<String> catList = new ArrayList<String>();
    catList.add("Go1");
    catList.add("Go2");
    catList.add("Go3");

    adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, catList);
}
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {

            if (((TextView) view).getText() == "Go1"){
                Intent in = new Intent(getApplicationContext(),
                        MainActivity.class);
                in.putExtra("key", 0);
                startActivity(in);

            }
            if (((TextView) view).getText() == "Go2"){
                Intent in = new Intent(getApplicationContext(),
                        MainActivity.class);
                in.putExtra("key", 1);
                startActivity(in);

            }
            if (((TextView) view).getText() == "Go3"){
                Toast.makeText(getBaseContext(), "Go3", Toast.LENGTH_SHORT).show();
            }

        }
    });

Code MainActivity write in method onCreate

问题到底是什么?您有什么问题?您知道如何使用意图启动活动吗?在onclick处理程序中,您最好执行类似于if(position==0){start activity2 with fragment1}或者if(position==1){start activity2 with fragment2}是的。MainActivity是Activity2。但它对我不起作用。“int fragmentnr=position;”在Activity1中?将我的代码放在onItemClick()中(其他位置)并从中删除所有其他代码。我仍然是新手,不太了解发生了什么。我们引入了一个变量fragmentnr,然后是什么?如何初始化activity2?我向您演示了如何启动activity2。但您尚未将我的代码放入onItemClick函数。请在此处执行。然后进行测试。