Android 将Listview切换到另一个布局。可能吗?

Android 将Listview切换到另一个布局。可能吗?,android,string,listview,Android,String,Listview,我是初学者。我的字符串如何成为可以重定向到其他布局的可单击字符串。或者不同的布局 编辑 这是我的MainActivity.java: public class MainActivity extends Activity { String[] country = new String[] { "China", "India", "Sri Lanka", "Malaysia", "Japan", }; /** Cal

我是初学者。我的字符串如何成为可以重定向到其他布局的可单击字符串。或者不同的布局

编辑 这是我的
MainActivity.java

public class MainActivity extends Activity {

String[] country = new String[] {
        "China",
        "India",
        "Sri Lanka",
        "Malaysia",
        "Japan",
};

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.listview_layout, country);

    ListView listView = (ListView) findViewById(R.id.listView);
    listView.setAdapter(adapter);

    listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {

            Intent in = new Intent(MainActivity.this,PageOne.class);

            startActivity(in);
        };
    });

}
我想做的是当印度被点击时,它会转到India.xml
如果单击China,它将转到China.xml,但是如果单击任何字符串,结果就是China.xml

假设您希望包含字符串的listview行可以单击

  listview.setOnItemClickListener(new OnItemClickListener()
    {

        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub
                             Intent i= new Intent("com.example.secondactivity");
                             i.putExtra("value",  country[arg2]);
                             // pass country based on listview position 
                             //value- is the key
                             // second parameter is the actual value ie country name 
                             startActivity(i);

        }


    });
确保第二个活动在清单文件中有一个条目

编辑:

项目文件夹


您需要为此使用基本适配器,然后单击该行打开另一个活动

您还可以使用listview和单击侦听器


并打开与该位置相关的相应活动。

尝试在列表视图项上创建一个侦听器,并通过意图导航到下一个活动

     listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {

            Intent in = new Intent(MainActivity.this,SecondActivity.class);

            startActivity(in);
        };
    });
listView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
Intent in=新的Intent(MainActivity.this,SecondActivity.class);
星触觉(in);
};
});

你想让你的listview可点击吗?一个字符串怎么可以点击?它显示的是什么上下文?我只是想,如果我点击“India”,它会转到另一个布局“India.java”或“India.class”。。但是我没有任何想法。example.android.chuck.PageOne应该是com.tmm.android.chuck.PageOne。以同样的方式交叉manifest@immaBeans检查清单文件并更改此Intent i=newintent(“com.example.android.chuck.PageOne”);to Intent i=newintent(“com.tmm.android.chuck.PageOne”);这很酷,扎伊夫先生,但我的目标是去另一个版面,而不仅仅是做祝酒词。但是现在我对这种技术有了一个想法,谢谢:)我要把它放到MainActivity.java上吗?我需要为此创建新方法吗?(对不起,我只是一个初学者)但我理解代码。我会在家里试试这个。非常感谢。:)谢谢你,卡米尔先生。我回家后要试试这个。我在第二个活动中不做任何更改?第二次行动有代码吗?仅仅是调用china.xml或其他什么布局?不明白你想说什么?只需尝试在第二个活动中获取国家的价值,如
getIntent.getStringExtra(“价值”)卡米尔先生。谢谢,它现在正在工作,但是,当印度被点击时,它也会转到china.xml。。它应该去印度。xml@immaBeans我认为你必须首先接受这个答案,如果它有帮助的话,并为此提出一个新问题。拉古南丹,谢谢你,但是字符串可以引导我到另一个布局吗?如何?我很困惑,对不起,我只是个初学者。什么是“com.example.secondactivity”?arg2是listview中的位置。country[arg2]是该listview位置的国家名称。因此,单击时,可以将字符串值传递给另一个名为ssecondactivity的活动,该活动位于包com.example下。您正在使用intentI understand now将值传递给第二个活动:)意向i=新意向(“com.example.IndiaActivity”);i、 putExtra(“印度”,国家[arg2]);星触觉(i);“value”是字符串的名称?我想要的?如果布局为com.example.ChinaActivity。我可以把“value”的值改为“China”吗?可以。这只是一把钥匙。你可以改变。在第二个活动中,您可以使用bundle.wow接收值。我会在家里试试这个。这很酷,谢谢。另一个问题。拉古南丹先生,包是什么?
     Intent intent = getIntent();
     Bundle b = intent.getExtras();
     String country = b.getString(key);//value or china in youe case.
  <activity
   android:name="com.example.test1.secondactivity"
   >
   <intent-filter>
     <action android:name="com.example.test1.secondactivity" />
     <category android:name="android.intent.category.DEFAULT" />
   </intent-filter>
   </activity>
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

String[] country = new String[] {
"India",
"Pakistan",
"Sri Lanka",
"China",
"Bangladesh",
"Nepal",
"Afghanistan",
"North Korea",
"South Korea",
"Japan"
};


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

// R.layout.listview_layout is the custom layout
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
          android.R.layout.simple_list_item_1, android.R.id.text1, country);
 //this refers to the actiivty context,
 //second parameters says its a simple list item
 //third is id of text 
 //country is your array of string    
ListView listView = (ListView) findViewById(R.id.lv);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener()
{



    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
        Intent i= new Intent("com.example.test1.secondactivity");
        i.putExtra("value",  country[arg2]);
        // pass country based on listview position 
        //value- is the key
        // second parameter is the actual value ie country name 
        startActivity(i);

    }


}); 
}
}
    public class secondactivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second);
    TextView tv= (TextView) findViewById(R.id.textView1);
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        String country = extras.getString("value");//value or china in youe case
        tv.setText(country);
    }

  }
  }
     listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {

            Intent in = new Intent(MainActivity.this,SecondActivity.class);

            startActivity(in);
        };
    });