【问题标题】:open new window from a list从列表中打开新窗口
【发布时间】:2012-03-21 15:52:37
【问题描述】:

我已经列出了国家/地区列表,我希望它在单击其中一个项目时打开一个新窗口,但我无法做到这一点 =/
这是我的 java 代码

public class Country_list extends ListActivity{<br>
    @Override<br>
    protected void onCreate(Bundle savedInstanceState) {<br>
        // TODO Auto-generated method stub<br>
        super.onCreate(savedInstanceState);<br>
        setContentView(R.layout.main);<br>

        setListAdapter(new MyAdapter(this,
                android.R.layout.simple_list_item_1,R.id.imageView1,
                getResources().getStringArray(R.array.country)));
    }
  private class MyAdapter extends ArrayAdapter<String>{

        public MyAdapter(Context context, int resource, int textViewResourceId,
                String[] strings) {
            super(context, resource, textViewResourceId, strings);
            // TODO Auto-generated constructor stub
}
        public View getView(int position, View convertView, ViewGroup parent){

        LayoutInflater inflater= (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            View row = inflater.inflate(R.layout.list_country,parent, false);

            String[] items=getResources().getStringArray(R.array.country);

            ImageView iv= (ImageView) row.findViewById(R.id.imageView1);
            TextView tv=(TextView) row.findViewById(R.id.textView1);

            tv.setText(items[position]);

            if(items[position].equals("English")){
                iv.setImageResource(R.drawable.ic_english_h);
            }
            else if(items[position].equals("French")){
                iv.setImageResource(R.drawable.ic_france_h);
            }
            else if(items[position].equals("German")){
                iv.setImageResource(R.drawable.ic_german_h);
            }
            else if(items[position].equals("Turkish")){
                iv.setImageResource(R.drawable.ic_turky_h);
            }
            else if(items[position].equals("Chinese")){
                iv.setImageResource(R.drawable.ic_china_h);
            }
            else if(items[position].equals("Italian")){
                iv.setImageResource(R.drawable.ic_italy_h);
            }
            else if(items[position].equals("Russian")){
                iv.setImageResource(R.drawable.ic_russia);
            }
            return row;
        }
    }

【问题讨论】:

  • 您的具体要求是什么,您需要对 Listview 中的每个元素进行自己的活动?
  • 好的,您必须为您的列表添加一个项目点击侦听器,然后在点击处理程序中,您可以在 Intent 的帮助下启动一个新的 Activity。但我不知道你取得了什么成就,你能在你的应用程序中看到列表吗?
  • @Aerrow 让它打开另一个类,其中包含所选国家语言的单词列表
  • @user1283769 : 你可以打开一个弹出窗口而不是一个新的活动
  • @rajesh.adhi: 是的,我可以这样看:[image]i43.tinypic.com/11rdn4h.jpg

标签: android listview window new-operator


【解决方案1】:

在包含列表的主要活动中实现OnItemClickListener

public void onItemClick(AdapterView<?> arg0, View view, int position,long id) {
    Intent intent = new Intent(this, SecondActivity.class);
    intent.putExtra("data1", "countryname");
    intent.putExtra("data2", "countryCode");
    startActivity(intent);
}

如果您想将数据传递给第二个活动,请在 putExtra 函数中指定它们,您可以像这样检索第二个活动内的数据

String data1 = getIntent().getStringExtra("data1");
String data2 = getIntent().getStringExtra("data2");

确保在清单文件中添加第二个活动

<activity android:name=".SecondActivity">
     <intent-filter >
          <action android:name="android.intent.action.VIEW" />

          <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
</activity>

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2018-12-14
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    相关资源
    最近更新 更多