여러 버튼을 동적으로 표시하고 각 행에 2 개의 버튼을 표시하고 싶습니다. 나는 tablerow를 시도하고 그 안에 linearLayout을 넣었지만 uttons가 나타나지 않았습니다. 내가 지금까지 한 것은 버튼 아래에 버튼을 제공합니다 ... 그게 내가 원하는 것입니다 void read () {
File file = getCacheDir();
File file1 = new File(file,"favoris.txt");
BufferedReader reader;
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(file1);
StringBuffer stringBuffer = new StringBuffer();
reader = new BufferedReader(new InputStreamReader(fileInputStream));
String line=reader.readLine();
while (line != null) {
LinearLayout mainLinear=(LinearLayout) findViewById(R.id.mainLinear);
LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
ImageButton ib=new ImageButton(this);
Button b=new Button(this);
b.setLayoutParams(params);
ib.setLayoutParams(params);
final int id=Integer.parseInt(line);
b.setId(id);
//ib.setId(id);
line = reader.readLine();
b.setText(line);
line = reader.readLine();
b.setText(b.getText()+"\n"+line);
line = reader.readLine();
Picasso.with(this).load("https://omaimaelair.000webhostapp.com/images/img"+id+".jpg").into(ib);
mainLinear.addView(b);
mainLinear.addView(ib);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(FavorisActivity.this,id+"", Toast.LENGTH_SHORT).show();
}
});
}
...
LinearLayout
에서를 사용하고 있습니다 R.id.mainLinear
. 이 레이아웃의 방향이 vertical
각 버튼이면 다음에 추가 된 버튼이 나타납니다. 또한 R.id.mainLinear
각 반복마다 새 항목 을 추가합니다 . while
루프를 호출하기 전에 메인 레이아웃을 호출해야 할 것 입니다.
LinearLayout
메인 LinearLayout
(수직) 내에 (수평)을 사용합니다 . 수평에 버튼을 추가합니다 LinearLayout
. 그러면 문제가 해결 될 것입니다.
이렇게하면 문제가 해결되지만를 사용하고 ListView
버튼에 대한 사용자 정의보기를 정의해야합니다. 데이터 어댑터를 사용하여 필요한 정보로 단추를 채우십시오. 외모와 기능을 훨씬 더 많이 제어 할 수 있습니다. 또한 나중에 코드를 변경하는 것이 훨씬 쉬울 것입니다.
마지막으로, 지금하고있는 방식으로 파일에서 데이터를 읽지 않는 것이 좋습니다. 명세서 .readLine
의 유효성을 확인하기 전에 세 번의 호출이 있습니다 while
. 이로 인해 오류가 발생할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다