Java 安卓列表视图。从activity1转换到activity2中的片段
有一个活动,它有一个列表(listview)。我需要调整click处理程序,以便在单击第一个项目时调用显示第一个片段的Activity2,如果单击第二个元素,则调用显示第二个片段的Activity2 我的代码活动1: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
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函数。请在此处执行。然后进行测试。