2017-04-25 5 views
-4

私はテキストビューを使っていくつかのボタン(アクティビティa)を定義しています。ボタンをクリックするたびにリストビューを配置したアクティビティ(アクティビティb)が開きます。私が望むのは、アクティビティを押しているボタンに応じて、リストビュー内のいくつかのリストをロードすることです。ボタンのようにリストビューでitem1、item2、item3、item4のような4つのアイテムをロードし、ボタンbのためにリストビューでitemV、itemW、itemX、item4、itemZのような5つのアイテムをロードします。ユーザの選択選択(複数のボタン、アクティビティaの内部)に応じて、新しいアクティビティ(アクティビティa)のリストビューにアイテムの数を追加する方法は?

これは、これはあなたが意図にエキストラを配置する必要があり

public class SubCategory extends AppCompatActivity { 

private ListView listView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_sub_category); 

    listView = (ListView)findViewById(R.id.listview); 
} 

}

+0

あなたが投稿したコードは不完全です。 –

+0

@AndyDeveloper何が間違っているか教えてください...私はそれを修正します。 –

答えて

0

このようなあなたの両方の活動を変更します。あなたの必要に応じて動作します。

public class MainActivity extends AppCompatActivity implements View.OnClickListener { 

    private TextView a, b; 

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

     a = (TextView)findViewById(R.id.a); 
     b = (TextView)findViewById(R.id.b); 

     a.setOnClickListener(this); 
     b.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()){ 
      case R.id.a: 
       Intent sub1 = new Intent(this, SubCategory.class); 
       sub1.putExtra("BUTTON_CLICKED", "A"); 
       this.startActivity(sub1); 
       break; 
      case R.id.b: 
       Intent sub2 = new Intent(this, SubCategory.class); 
       sub2.putExtra("BUTTON_CLICKED", "B"); 
       this.startActivity(sub2); 
       break; 
     } 
    } 
} 

そして:

public class SubCategory extends AppCompatActivity { 

    private ListView listView; 
    String buttonType; 
    ArrayAdapter adapter; 

    static final String[] FRUITS = new String[] { "Apple", "Avocado", "Banana"}; 
    static final String[] NAMES = new String[] { "Sachin", "Brett", "Shane", "Zaheer"}; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_sub_category); 



     Bundle bundle = getIntent().getExtras(); 
     if(bundle != null) { 
      buttonType = bundle.getString("BUTTON_CLICKED"); 
     } 
     if(buttonType != null && buttonType.equals("A")) { 
      adapter = new ArrayAdapter<String>(this, R.layout.activity_listview, FRUITS); 
     } else if(buttonType != null && buttonType.equals("B")) { 
      adapter = new ArrayAdapter<String>(this, R.layout.activity_listview, NAMES); 
     } 
     listView = (ListView)findViewById(R.id.listview); 
     listView.setAdapter(adapter); 
    } 
} 
+0

この「R.layout.activity_listview」は、このレイアウト「activity_listview」のどこから取得していませんか? –

+0

単純なxmlにはTextviewのみが含まれています。ここでは、xmlのコードをひっくり返したカンマで貼り付けています。 "<?xml version =" 1.0 "encoding =" utf-8 "?> <! - シングルリストアイテムデザイン - > " – user320676

+0

大丈夫です!情報をありがとう、私は最後のものを1つだけ聞いてみたいです...後で私はこのリストビューのアイテムをクリック可能にしたいと思っています...もし私がこのリストビューのアイテムをサブカテゴリー内にonclicklistnerを追加したいのなら...この方法を使用することは可能でしょうか? –

0

bの私の活動である

public class ProfileActivity extends AppCompatActivity implements View.OnClickListener { 
 

 
    private TextView a, b; 
 

 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.activity_profile); 
 

 
     a = (TextView)findViewById(R.id.a); 
 
     b = (TextView)findViewById(R.id.b); 
 

 
     a.setOnClickListener(this); 
 
     b.setOnClickListener(this); 
 
    } 
 

 
@Override 
 
    public void onClick(View v) { 
 
     switch (v.getId()){ 
 
      case R.id.a: 
 
       Intent sub1 = new Intent(this, SubCategory.class); 
 
       this.startActivity(sub1); 
 
       break; 
 
      case R.id.b: 
 
       Intent sub2 = new Intent(this, SubCategory.class); 
 
       this.startActivity(sub2); 
 
       break; 
 
     } 
 
    } 
 
}

My活動です。

sub.putExtra("emp-type","EMPLOYEE TYPE HERE"); 

また、新しい活動の

String empType = getIntent().getStringExtra("emp-type",""); 
関連する問題