2014-01-28 2 views
0

Я новичок в Android, но пока я создаю приложение, я нашел эту проблему, когда добавляю представление из java-кода в макете ..... это код Java и расположение XML:Добавить в RelativeLayout из java continue

public class second extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.labelseconda); 
    EditText edit=(EditText)findViewById(R.id.nexus); 
    InputMethodManager imm; 
    imm = (InputMethodManager) 
      getSystemService(INPUT_METHOD_SERVICE); 
    imm.showSoftInput(edit, InputMethodManager.SHOW_IMPLICIT); } 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.menu2, menu); 
    return true; } 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    EditText edit=(EditText)findViewById(R.id.nexus); 
    String name=item.getTitle().toString(); 
    if (name.equals("Save")) { 
     String valor; 
     valor = edit.getText().toString(); 
     RelativeLayout journals; 
     journals = (RelativeLayout) findViewById(R.layout.fragment_main); 
     TextView tv = new TextView(this); 
     tv.setId(111111); 
     tv.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE); 
     tv.setText(valor); 
     RelativeLayout.LayoutParams params =new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     Button button=(Button)findViewById(R.id.button); 
     params.addRule(RelativeLayout.ABOVE, button.getId()); 
     tv.setLayoutParams(params); 
     // THIS THE PROBLEM 
     journals.addView(tv, params); 
     return true;  } 
    else  { 
     edit.setText("non è uguale a save"); 
     return true;    } }} 

макет XML, где я хочу, чтобы установить свой новый вид:

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" 
tools:context=".MainActivity$PlaceholderFragment"> 
<Button 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/text_button" 
    android:id="@+id/button" 
    android:onClick="method" 
    android:paddingRight="0dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" /> 

+0

В чем проблема? –

+0

Проблема в java-коде, она не работает: journalals.addView (tv, params); – user3207249

ответ

0

Что именно проблема? Я вижу несколько проблем:

Ваша кнопка определяет андроида: OnClick недвижимость здесь:

android:onClick="method" 

Однако, я не вижу реализацию этого метода в любом месте в своем классе активности. Вы должны иметь что-то вроде этого, чтобы справиться с кнопки сенсорного события (вы можете использовать любое другое имя, а не метод):

public void method(View v) { 
    ... // do something when the user presses this button 
} 

Кроме того, имя макета загружается в OnCreate ничего я вижу здесь не совпадают :

R.layout.labelseconda 
+0

Да, но класс «второй» это не тот класс, где существует общедоступный метод void, это не другой класс – user3207249

+0

Возможно, я плохо себя зарекомендовал, моя проблема в источнике java, когда вы выполняете journalist.addview (TV, params); по ошибке, но я не понимаю, почему параметры являются неправильными и, возможно, другими вещами (макет XML, который я показываю вам по имени frag_main.xml) – user3207249

+0

Вы получаете исключение NullPointerException в журналах .addView (tv, params) ;? – AWT

Смежные вопросы