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);
};
});