검색
아하에서 찾은 849건의 질문
- 생활꿀팁생활Q. firebase를 이용한 안드로이드 스튜디오 공부중에 순서에 대해 이해가 안가는 것이 있습니다.viewHolder.chatStart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { destinationUid = userModels.get(i).getUid(); ChatModel chatModel = new ChatModel(); chatModel.users.put(uid,true); chatModel.users.put(destinationUid,true); if(chatRoomdUid == null){ FirebaseDatabase.getInstance().getReference().child("chatRooms").push().setValue(chatModel).addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { checkChatRoom(); Log.d("생성됨1", chatRoomdUid + " 1 "); } }); } Intent intent = new Intent(v.getContext(),ChatActivity.class); intent.putExtra("destinationUid",userModels.get(i).getUid()); chatRoomdUid = null; Log.d("생성됨2", chatRoomdUid + "2"); context.startActivity(intent); } }); void checkChatRoom(){ FirebaseDatabase.getInstance().getReference().child("chatRooms").orderByChild("users/"+uid).equalTo(true).addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { for(DataSnapshot item : dataSnapshot.getChildren()){ ChatModel chatModel = item.getValue(ChatModel.class); if(chatModel.users.containsKey(destinationUid)){ chatRoomdUid = item.getKey(); Log.d("생성됨3", chatRoomdUid + "3"); } } } @Override public void onCancelled(@NonNull DatabaseError databaseError) { } }); }제가 chatstart에 해당하는 것을 처음 클릭 했을 때logcat에 나오는 log는 생성됨 1 다음에 생성됨 3이 나오고 끝입니다.그리고 chatstart를 두번째 클릭하면 생성됨 2가 나옵니다.제가 이해가 되지 않는 부분은 두가지 입니다.1.처음 클릭 했을 때, onclick 부분의 if문이 끝나고 startActivity( intent)를 실행하기 전에 왜 생성됨2가 나오지 않는지 알고 싶습니다.onclick 부분의 if문에서 checkChatRoom() 다음에 생성됨 1인데 왜 생성됨3의 로그가 아닌 생성됨 1의 로그가 먼저 나오는 것인가요?아무리 생각해도 순서가 이해가 되지 않습니다. 도움 부탁드릴게요..*destinationUid, chatRoomUid 의 초기값은 null입니다.
- 생활꿀팁생활Q. next.js React에서 mysql은 어떻게 사용하나요?node자체에서 mysql을 사용하는건 되지만 아래 소스처럼 라우팅해주고 npm으로 실행시켜주는데요 해당 리액트소스에서는 require('mysql')가 안되더라구요const http = require('http'); const https = require('https'); const { parse } = require('url'); const next = require('next'); const fs = require('fs'); const dev = process.env.NODE_ENV !== 'production'; const app = next({ dev }); const handle = app.getRequestHandler(); const port1 = 3030; const port2 = 3080; const options = { key: fs.readFileSync('/etc/letsencrypt/live/react.snomet.site/privkey.pem'), cert: fs.readFileSync('/etc/letsencrypt/live/react.snomet.site/cert.pem'), }; app.prepare().then(() => { http .createServer((req, res) => { const parsedUrl = parse(req.url, true); const { pathname, query } = parsedUrl; handle(req, res, parsedUrl); }) .listen(port1, err => { if (err) throw err; console.log(`> Ready on http://localhost:${port1}`); }); https .createServer(options, (req, res) => { const parsedUrl = parse(req.url, true); const { pathname, query } = parsedUrl; if (pathname.indexOf('/test/chapters') === 0) { const a = pathname.replace('/test/chapters', ''); if (a.length > 0 && a.length < 3) { app.render(req, res, '/test/t' + a, query); } else { app.render(req, res, '/test/t1', query); } } else if (pathname === '/a') { app.render(req, res, '/about', query); } else if (pathname === '/i') { app.render(req, res, '/info', query); } else { handle(req, res, parsedUrl); } }) .listen(port2, err => { if (err) throw err; console.log(`> Ready on http://localhost:${port2}`); }); });
- 생활꿀팁생활Q. C# 프로그래밍에서 PropertyInfo[]를 활용하여 Name값을 string[] 에 넣고싶습니다.안녕하세요. WPF 공부중에 질문드립니다.PropertyInfo[] props = typeof(Colors).GetProperties(); int num = props.Length; string[] strColors = new string[num]; for (int i = 0; i < num; i++) { strColors[i] = props[i].Name; }Colors 클래스의 프로퍼티 목록들을 가져와서이 목록들의 Name값들을 string[]에 저장하고싶습니다.첫줄에서 GetProperties를 할때 Colors의 프로퍼티들을 한번 싹 긁어올것 같다는 생각이 들고,for문에서 한번더 긁어온 목록들을 읽게되어 왠지 했던일을 한번더 한것같다는 생각이 듭니다.조금더 깔끔한 방법은 없는지, 제가 허튼 짓을 한 부분이 있는지 궁금해서 질문드립니다...감사합니다.
- 생활꿀팁생활Q. 배열에 저장된 데이타 삭제하는 방법좀 가르쳐주세요..정수형 배열을 선언하고 for문을 이용해서 데이타를 넣고 나서 배열의 첫번째 주소에 들어있는 정수형 데이타를 삭제하고 나머지 데이타들을 한칸씩 앞으로 당겨서 저장한다음 출력하는 방법좀 가르쳐 주세요. 물론 마지막 배열주소에 저장된 데이타가 한칸 앞주소에 저장되었으니까 그 위치가 널문자가 들어가야되거든요. 다음과 같이 코딩을 했는데 먹히지가 않거든요. #include <stdio.h> main() { int i; nt a[10]; int *ptr = a; for(i=0;i<10;i++) scanf("%d",&a[i]); *ptr = " "; //여기서 데이타 삭제코딩을 잘못한것 같거든요. for(i=1;i<10;i++) *(ptr+i-1)=*(ptr+i); *(ptr+9) = '\0'; for(i=0;i<9;i++) printf("%d\t",*ptr++); printf("\n"); }
- 생활꿀팁생활Q. 이 코드의 StackOverflow의 해결방법이 뭔가요?public class MainActivity extends AppCompatActivity { public EditText editText; public Button button; public LinearLayout linearLayout; public LinearLayout lll; public Button getBtn; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = findViewById(R.id.editText); button = findViewById(R.id.btn); linearLayout = findViewById(R.id.linerLayout); getBtn = findViewById(R.id.getText); getBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { editText.getText(); String string = editText.getText().toString(); int n = Integer.parseInt(string); for(int i=0; i<n; i++){ onClick(button); } button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = (View)inflater.inflate(R.layout.activity_inflate, null); lll = view.findViewById(R.id.LLL); linearLayout.addView(view); } }); } }); } }E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.example., PID: 32382java.lang.StackOverflowError: stack size 8MBat android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1306)at android.text.SpannableStringBuilder.getChars(SpannableStringBuilder.java:1191)at android.text.SpannableStringBuilder.toString(SpannableStringBuilder.java:1213)at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:40)at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:44)at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:44)at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:44)at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:44)at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:44)at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:44)at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:44)에러는 이렇게 뜹니다ㅠㅠfor문이 무한루프를 도는 것 같은데 무엇이 문제인지 모르겠습니다
- 생활꿀팁생활Q. JAVA 오류 Exception in thread "main" java.lang.NullPointerException 문제가뭐죠?public class Music {private String name;private String song;public String getName() {return name;}public String getSong() {return song;}public void setName(String name) {this.name=name;}public void setSong(String song) {this.song=song;}public void music(String name, String song) {this.name=name;this.song=song;}public void printPlaydata() {System.out.println(this.name+ "의"+this.song);}이거와 밑은 메인함수public class tester {public static void main(String[] args) {Music[] music = new Music[3];music[0].music("베토벤","운명");music[1].music("헨델","메시아");music[2].music("비발디","사계");for(int i=0; i<music.length; i++) {music[i].printPlaydata();}계속 오류 Exception in thread "main" java.lang.NullPointerException 오류가뜨는데 어디가 문제인거죠?!!
- 생활꿀팁생활Q. (list 관련)큰 값부터 앞에서 나오게 출력하는 방법은?temp=0 a=[0,0,0,0] a[0]=str(input("1번째 숫자 : ")) a[1]=str(input("2번째 숫자 : ")) a[2]=str(input("3번째 숫자 : ")) a[3]=str(input("4번째 숫자 : ")) for i in range(0,3): max=i for j in range(0,3): if a[j]<a[max]: max=j temp=a[i] a[i]=a[max] a[max]=temp for i in range(0,4): print(a[i], end="") 숫자를 입력받은 후, 큰 값부터 앞에나오게 출력하고싶었는데 원치 않는 숫자들이 찍히네요ㅠㅠ c언어에서 정렬부분에 있는부분을 똑같이 따라해서 파이썬에 적용해보았는데 적용이 되지 않습니다. 어느 부분에서 막힌지 알려주시면 감사하겠습니다.
- 생활꿀팁생활Q. 자바 랜덤 함수에 가중치 질문입니다현재 로또 프로그램을 만들고 있는데여 1~45숫자에서 난수를뽑고 그난수에다가이제 가중치를줘서1~10 에서 만약 2,4,5 에 가중치를 주고 싶으면 무슨방법으로 줘야할까요?구글링해보니까 map이랑hashmap 을쓰는거같던데 더자세한걸 찾아보려고해도 잘안나오네요 ㅜㅜpublic void makeNum() {lotNum = new int[7]; for(int i=0; i<7; i++) {lotNum[i] = (int) (Math.random()*45) +1;for(int j=0; j<i; j++) {if(lotNum[i] == lotNum[j]) {//중복제거lotNum[i] = (int) (Math.random()*45) +1;j = 0;일단이렇게 짜놨는데 여기에 가중치를 주려면 어떻게해야할까요 ?
- 생활꿀팁생활Q. 파이썬) 숫자만 출력하고 줄바꿈 하는 방법이 뭔가요?for i in range(0,3) : for j in range(0,3) : print(a[i][j]+b[i][j], end="") 이중리스트를 사용해서 행렬 덧셈을 나타내는 식을 만들고 있는데제가 한 것 처럼 실행을 시키면 246810121416168 이런식으로 찍히더라구요for문 한 싸이클 돌았을때 3개의 숫자만 출력시키고줄바꿈을 하는 방법을 알고자하는데 도와주세요.
- 생활꿀팁생활Q. c언어 스택에 대해서 질문 드립니다.#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_STACK_SIZE 100typedef char Element;Element data[MAX_STACK_SIZE];int top;void error( char str[] ){printf("%s\n",str);exit(1);}void init_stack() { top= -1;}int is_empty() { return top == -1; }int is_full() { return top == MAX_STACK_SIZE-1; }int size() { return top+1;}void push ( Element e ){if( is_full() )error("스택 포화 에러");data[++top] = e;}Element pop (){if( is_empty() )error("스택 공백 에러");return data[top--];}Element peek(){if( is_empty() )error ("스택 공백 에러");return data[top];}이게 일단 스택에서 사용되는 함수 써둔거구요 문자열을 입력받아서 그대로 역으로 출력하고싶은데분명 배열 형태로 문자를 받아서 push에 넣어 스택에 저장한뒤에 그걸 pop으로 출력해내는 구조인건머릿속에 그려지는데 뭔가 만드려니까 손이 안잡히네요..int main(){int i;init_stack();char a[100];printf("문자열 입력 >");scanf("%s", a);for(i=0;a[i]!='\0';i++){push(a);} for(i=0;i<100;i++){printf("%s", pop(a));}return 0;}도저히 감이 안와서 이렇게 끄적여봤는데 역시나 컴파일이 안되네요 push(a); 이부분이랑void push ( Element e ) 이 부분에서 오류가 나는거 같은데 어떻게 고쳐야할지 감이 안잡혀요 도와주세요 ㅠㅠ