0

私は初心者です。私の文字列を他のレイアウトにリダイレクトできるクリック可能なものにするにはどうすればよいですか。または異なるレイアウト。

編集済みこれは私のもの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);
        };
    });

}

これは PageOne.class です

public class PageOne extends Activity implements OnClickListener{

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.china);
    getIntent().getStringExtra("China");
  }

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

}
  }  

私がやりたかったのは、インドがクリックされたときにIndia.xmlに移動し、中国がクリックされた場合はChina.xmlに移動しますが、クリックした文字列はchina.xmlです。

4

3 に答える 3

0

文字列を含むリストビュー行をクリック可能にしたいとします。

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

        }


    });

国[arg2] . arg2 はリストビューの位置です。リストビューのアイテムは、位置に基づいて入力されます。リストビューの行がクリックされたとき、country[arg2] はそのリストビューの位置にある国の名前です。したがって、インテントを使用して値を secondactivity に渡します。

2 番目のアクティビティの onCreate() で取得するには

     Intent intent = getIntent();
     Bundle b = intent.getExtras();
     String country = b.getString(key);//value or china in youe case.

マニフェスト ファイルに 2 番目のアクティビティのエントリがあることを確認する

編集:

  <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>

リストビューを使用した MainActivity。

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

    }


}); 
}
}

テキストビューを持つ 2 番目のアクティビティ。

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

  }
  }

プロジェクト フォルダ

ここに画像の説明を入力

于 2013-03-29T13:20:52.950 に答える
0

そのためにベースアダプターを使用し、行をクリックして別のアクティビティを開く必要があります。

listview onitemクリックリスナーも使用できます

ポジションに関するそれぞれのアクティビティを開きます。

于 2013-03-29T13:20:53.540 に答える
0

リスト ビュー アイテムにリスナーを作成し、インテントによって次のアクティビティに移動してみてください。

     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);
        };
    });
于 2013-03-29T13:21:50.767 に答える